[工具&笔记]pipenv

参考使用pipenv管理你的项目

关系

    1. pip
      管理和安装python的第三方包。
    1. virtualenv
      独立的虚拟环境,可避免各个python应用之间互相影响(如对包的版本依赖不同)。
    1. pipenv
      高级的包管理器。
      对pip和virtualenv的功能做了封装,不必再单独使用两者。除此之外,使用Pipfile和Pipfile.lock两个文件描述了环境中的包依赖关系,比requirements.txt文件更清晰、更有结构。等等。

pip相关


    1. 默认的源是https://pypi.python.org/simple。然而由于网速过慢,通常会选择阿里云源(http://mirrors.aliyun.com/pypi/simple/)或豆瓣源(http://pypi.douban.com/simple)。
      在文件~/.pip/pip.conf中:
      [global] index-url = http://mirrors.aliyun.com/pypi/simple/
      [install] trusted-host = mirrors.aliyun.com
    1. 多个python版本在同一环境
      以一个环境中有Python2和Python3两个版本为例。
      正常情况下,在目录/usr/local/bin/会有pippip3两个文件(或类似名称文件)。具体位置可使用which命令获取。
      如果两个文件的内容正确,那使用pippip3命令即可进行区分。
      怎么区分是否正确?查看文件的首行。
      我本地的pip文件首行是:
      #!/usr/bin/python
      而pip3的首行是:
      #!/usr/local/opt/python3/bin/python3.6
      这句话的目的是为了指出,当该文件以脚本方式运行时,所使用的python解释器。
      具体的解释器位置,同样可使用which命令获取。
      也可通过以下命令来查看:
      pip -V
      然而,其实可直接使用以下命令指定使用哪个python版本以及对应的pip:
      sudo python -m pip install xxx

pipenv命令

    1. pipenv install
      创建虚拟环境,安装包,并加入Pipfile。
    1. pipenv shell
      使用虚拟环境,生成一个shell。
    1. pipenv lock
      生成Pipfile.lock文件。
    1. pipenv graph
      树形展示当前虚拟环境中,各个已安装包的依赖关系。
    1. exit
      退出虚拟环境。
    1. pipenv run
      使用虚拟环境,执行跟着的命令。
    1. pipenv uninstall
      install反过来。
    1. pipenv sync
      安装Pipfile.lock中表明的所有包。
    1. pipenv clean
      卸载所有不在Pipfile.lock中表明的包。

一些问题

    1. 整体不稳定
      目前(2018.03),基本每天都会发一个小版本,距离完全稳定还有一定距离。
    1. 源的问题
      如果不使用默认的官方pip源,那就会经常出现各种莫名其妙的问题(涉及pipenv lock命令),在仓库的issues里也经常看到相关问题,由于其版本更新过快,我也不太好确认是已经改好了,还是没改好,或者就是我本地环境的问题(暂未深究)。我暂时提了一个issue:using different source achieve different result when execute pipenv lock。

3月14日补充

上面那个问题我最后发现是pip源没配置好,当使用的源的url为 http://mirrors.aliyun.com/pypi/simple/ 时,需要设置 verify_ssl=false
随后我发现,不管是豆瓣源还是阿里云源现在都可通过https访问,也就是说在pip.conf文件中把url从http换成https后,可以不加trusted-host了~

目前来看,lock功能运行非常得慢!!!

你可能感兴趣的:([工具&笔记]pipenv)