pipenv 使用总结

简介

一般Python项目管理虚拟环境和包依赖都使用的是pip+virtualenv的方案,但日常使用中还是有些麻烦。跟Node.js的npm类似,pipenv是Python项目的依赖管理器。可以很方便的管理项目虚拟环境、包依赖以及开发环境。

安装

pip3 install pipenv 

如何使用

  • 创建项目目录
  • 进入项目目录
  • 使用以下命令创建虚拟环境
    pipenv install
  • 使用以下命令进入虚拟环境
    pipenv shell
  • 安装项目所使用的包(以flask为例)
    pipenv install flask
    安装过程如下:
    ➜  test mkdir pipenvtest
    ➜ test cd pipenvtest
    ➜ pipenvtest pipenv install
    Creating a virtualenv for this project…
    ⠋Using base prefix '/usr/local/Cellar/python3/3.6.4_2/Frameworks/Python.framework/Versions/3.6'
    New python executable in /Users/zhd/.local/share/virtualenvs/pipenvtest-1914ZQu8/bin/python3.6
    Also creating executable in /Users/zhd/.local/share/virtualenvs/pipenvtest-1914ZQu8/bin/python
    Installing setuptools, pip, wheel...done.

    Virtualenv location: /Users/zhd/.local/share/virtualenvs/pipenvtest-1914ZQu8
    Creating a Pipfile for this project…
    Pipfile.lock not found, creating…
    Locking [dev-packages] dependencies…
    Locking [packages] dependencies…
    Updated Pipfile.lock (c23e27)!
    Installing dependencies from Pipfile.lock (c23e27)…
    🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/000:00:00
    To activate this project's virtualenv, run the following:
    $ pipenv shell
    pipenv会自动生成两个文件:
    ➜  pipenvtest ls
    Pipfile Pipfile.lock
    文件内容如下:
    [[source]]

    url = "https://pypi.python.org/simple"
    verify_ssl = true
    name = "pypi"


    [packages]



    [dev-packages]

    ~
    ~
    ~

里面可以修改Pypi源,packages里面记录的是该项目环境所安装的包(会自动记录版本号),每次使用install命令安装包后pipenv都会自动更新这部分的内容。dev-packages里面记录的是开发环境所使用的包,如果安装包是指定为开发环境模式,则该包会记录在这一部分。

常用命令

# pipenv help
pipenv install --python 2.7
pipenv install --python 3.6
Options:
--update Update Pipenv & pip to latest.
--where Output project home information.
--venv Output virtualenv information.
--py Output Python interpreter information.
--envs Output Environment Variable options.
--rm Remove the virtualenv.
--bare Minimal output.
--completion Output completion (to be evald).
--man Display manpage.
--three / --two Use Python 3/2 when creating virtualenv.
--python TEXT Specify which version of Python virtualenv should use.
--site-packages Enable site-packages for the virtualenv.
--jumbotron An easter egg, effectively.
--version Show the version and exit.
-h, --help Show this message and exit.