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.