Pipenv
是Python
项目的依赖管理器, 是升级版的pip
, 它能够有效地管理复杂的模块依赖关系, 项目地址 https://github.com/pypa/pipenv.
pip3 install pipenv --user
这条命令是在当前用户的目录下安装pipenv
, 省略掉--user
参数, 就会安装到系统目录中且需要 sudo
权限. 安装完毕查看下pipenv
的安装路径
下面我们来创建一个空的项目, 看看pipenv
的具体使用方法
mkdir pipenv_test
cd pipenv_test
pipenv install
因为这是一个空的项目, pipenv
会帮你创建一个全新的虚拟环境, 生成2个特殊的文件, Pipfile
和 Pipfile.lock
.
我们再来看看pipenv
帮我们创建的虚拟环境, python
解释器存在于你的home
目录下. 而且, 每一个python
项目, pipenv
所创建的虚拟环境都是互相独立的, 能够极大的减少模块及对应版本的相互干扰.
虚拟环境创建好了, 我们来安装个第三方的模块, 如dlib
pipenv install dlib
卸载命令是 pipenv uninstall dlib
, 更新命令是 pipenv update dlib
, 安装之后查看下Pipfile
, 可以看到它记录了了已安装包的基本信息
Pipfile.lock
文件则详细记录了模块的版本好及对应的哈希值, 这个有点像常见的 requirements.txt
命令 pipenv graph
可以查看更加详细的模块依赖关系
还是以 dlib
模块为例, 之前默认安装的是19.15.0
版本, 现在需要指定安装19.13.1
, 相当于降版本, 可以执行命令
pipenv install dlib==19.13.1
然后查看下Pipfile.lock
文件
通常有一些python
包只在你的开发环境中需要, 比如单元测试包. 这时候就需要将开发环境和生产环境严格区分开来, 而pipenv
正好提供了这个功能
pipenv install imutils --dev
如果不加--dev
就默认都是生产环境, 安装完毕看看Pipfile.lock
当别人clone
了你的工程后, 如果只需要开发环境, 可以这样
pipenv install --dev
更新 Pipfile.lock
文件锁定当前环境的依赖关系
xugaoxiang@ubuntu:~/pipenv_test$ pipenv lock
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Updated Pipfile.lock (b3c305)!
写个简单的脚本test.py
import dlib
print(dlib.__version__)
运行命令是
pipenv run python3 test.py