美文网首页python自学
你的项目需要Pipenv来管理

你的项目需要Pipenv来管理

作者: brakchen | 来源:发表于2018-12-21 20:30 被阅读2次

    Pipenv 将virtual 和 pip 结合起来,Python的包管理和虚拟环境管理有过一段混乱时期,期间出现过,easy_install,vritualenv,pyvenv,venv,pyenv等等与包管理和虚拟环境设立有关的工具或者标准库

    pipenv 使用的是Pipfile来管理你的依赖和虚拟环境,Pipfile是基于TOML格式而不是使用requirements.txt这样的纯文本。一个项目只会对应一个Pipfile,讲开发环境和生产环境严格区分开来,用于替代简陋的requirements.txt

    版本信息

    以下所有内容都是基于Mac OS 10.14.2

    安装

    安装非常简单,但是由于python版本的原因,在你的电脑上可能只有python2或者python3 ,亦或者同时共存了python3python3

    如果你清楚的知道自己电脑上python的情况,那么可以使用pip安装。

    #python2
    $pip install pienv
    #python3
    $pip3 install pienv
    

    如果你不清楚自己电脑上关于python的情况

    那请先确定python的版本

    $ python3 --version
    Python 3.6.4
    $ python --version
    Python 2.7.10
    

    以上是我的电脑的情况,如果你希望pipenv安装在python3 那么请运行

    $ python3 -m pip install pipenv
    

    如果你希望pipenv安装在python2 那么请运行

    $ python -m pip install pipenv
    

    用法

    pipenv的用法实际上非常简单

    $ pipenv shell
    

    运行上面这句命令以后,pipenv会自动创建Pipfile在当前目录然后再创建虚拟运行环境,完成后自动激活环境。

    关于多版本python同时共存的话,可以指定Python的版本来创建环境

    $ pipenv --three
    $ pipenv shell
    

    当然还可以手动指定虚拟环境的版本来创建虚拟环境

    $ pipenv --python 3.6
    $ pipenv shell
    

    注意:指定虚拟环境版本需要在环境路径中存在对应的python二进制文件,pipenv会搜索你的$PATH如果使用的是linux 或者 mac os

    Windows 用户的话。。需要百度一下。怎么设置环境变量

    如果指定版本不存在会抛出错误

    Warning: Python 3.7 was not found on your system…
    You can specify specific versions of Python with:
      $ pipenv --python path/to/python
    

    最后就是可以手动指定编译器路径

    $ pipenv --python [PYTHON_INTERPRETER_PATH]
    $ pipenv shell
    

    安装python 包

    在安装python包之前,我们需要替换一下安装源,因为pipenv自带的源非常慢

    打开当前目录下的Pipfile

    [[source]]
    name = "pypi"
    #替换url为 https://pypi.tuna.tsinghua.edu.cn/simple
    #我的已经替换过了
    url = "https://pypi.tuna.tsinghua.edu.cn/simple" 
    verify_ssl = true
    
    [dev-packages]
    
    [packages]
    
    [requires]
    python_version = "3.6"
    

    然后我们来安装requests

    $ pipenv install requests
    

    requests包顺利安装后先关模块就会加入到Pipfile中

    可以使用pipenv graph查看依赖关系

    $ pipenv graph
    requests==2.21.0
      - certifi [required: >=2017.4.17, installed: 2018.11.29]
      - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
      - idna [required: >=2.5,<2.9, installed: 2.8]
      - urllib3 [required: >=1.21.1,<1.25, installed: 1.24.1]
    

    同时Pipfile也会更新

    [[source]]
    name = "pypi"
    url = "https://pypi.tuna.tsinghua.edu.cn/simple"
    verify_ssl = true
    
    [dev-packages]
    
    [packages]
    requests = "*"
    
    [requires]
    python_version = "3.6"
    

    有时候我们需要一些辅助的调试包,这些调试包并不比被布置到生产环境中,所以你可以这样做

    $ pipenv install bs4 --dev
    

    pipenv会自动将bs4划到development的依赖区去,这样当你在生产环境安装依赖的时候bs4就不会被安装。

    以下一些命令将会在开发中比较常用

    $ pipenv --venv
    #这个命令会显示虚拟环境的位置在哪
    #==================================
    $ pipenv --where
    #这个命令会显示当前目录的路径
    #==================================
    $ pipenv --py
    #这个命令会当前虚拟环境的解释器信息
    #==================================
    $ pipenv --venv
    #这个命令会显示虚拟环境的位置在哪
    #==================================
    

    Run

    pipenv run 允许你在未进入激活环境的情况下运行命令,实际上pipenv run会激活环境运行你的命令以后返回结果给你

    $ vim hello.py
    $ pipenv run python hello.py
    Hello
    

    查看文件

    pipenv查看文档的方式和传统的linux查看文档的方式很像

    $ pipenv --man
    

    退出虚拟环境

    因为是在原来的Bash上开启一个子Bash所以只需要exist就可以啦

    $ exit
    

    相关文章

      网友评论

        本文标题:你的项目需要Pipenv来管理

        本文链接:https://www.haomeiwen.com/subject/vegvkqtx.html