pipenv 是Kenneth Reitz大神的作品,提供Python的各个版本间的管理,各种包管理。个人觉得是virtualenv pip等工具的合体。下面让我们来看看功能吧。
本文的测试环境是Python3.6,但也支持python2。
1 安装
首先请确保安装了python3和对应的pip3。
1 pip3 install pipenv
如下:
2 创建虚拟环境
1 mkdir project 2 cd project 3 pipenv install
如下:
初始化好虚拟环境后,会在项目目录下生成2个文件Pipfile
和Pipfile.lock
。为pipenv包的配置文件,代替原来的 requirement.txt。
项目提交时,可将Pipfile
文件和Pipfile.lock
文件一并提交,待其他开发克隆下载,根据此Pipfile 运行命令pipenv install --dev
生成自己的虚拟环境。
Pipfile.lock
文件是通过hash算法将包的名称和版本,及依赖关系生成哈希值,可以保证包的完整性。
3 安装包
用pycharm先打开咱们刚刚创建的project,然后创建APP目录,在app目录下创建如下spider.py文件,导入requests库,并没有安装。
安装requests包:
1 pipenv install requests
如下:
这样,在pycharm里就能看到requests已经可用:
4 查看安装的包和依赖关系
1 pipenv graph
如下:
4.1 如果只安装在开发环境中
1 pipenv install --dev requests --three
如下:
反应在Pipfile如下:
[[source]] url = "https://pypi.python.org/simple" verify_ssl = true name = "pypi" [packages] requests = "*" [dev-packages] requests = "*" [requires] python_version = "3.6"
安装包记录是在[dev-packages]
部分,还是[packages]
部分。在安装时,指定--dev
参数,则只安装[dev-packages]
下的包,若安装时不定指定--dev
参数,只会安装[packages]
包下面的模块。
[requires]
下的python在构建新的虚拟环境时,若没有会自动下载安装。
5 像virtualenv一样用命令生成requirements 文件
1 pipenv lock -r --dev > requirements.txt
如下:
6 通过requirements.txt安装包
1 pipenv install -r requirements.txt
这样我们可以重用之前的requirement.txt 文件来构建我们新的开发环境,可以把我们的项目顺利的迁到pipenv。
7 在虚拟环境运行py代码
7.1 方法一: pipenv run python xxx.py
1 pipenv run python xxx.py
如下:
7.2 方法二:启动虚拟环境的shell环境
1 pipenv shell
如下:
加上参数也可:
8 删除包
1 pipenv uninstall reuqests
如下:
9 删除虚拟环境
1 pipenv --rm
如下:
删除虚拟环境之后,再次运行pip shell 会发现先为这个project创建虚拟环境,然后再打开shell。如下:
10 常用参数及命令一览
1 pipenv --where 列出本地工程路径 2 pipenv --venv 列出虚拟环境路径 3 pipenv --py 列出虚拟环境的Python可执行文件 4 pipenv install 安装包(创建虚拟环境) 5 pipenv install moduel --dev 在开发环境安装包 6 pipenv graph 查看包依赖 7 pipenv lock 生成lockfile 8 pipenv install --dev 安装所有开发环境包 9 pipenv uninstall --all 卸载所有包 10 pipenv --rm 删除虚拟环境