Pipenv: Python包管理神器
Pipenv旨在将最好的包管理机制(bundler, composer, npm, cargo, yarn等等)带到Python中去。
它会为你的项目自动创建和管理virtualenv,也会在安装和移除包时自动同步Pipfile
,还生成了Pipfile.lock
文件描述了固定版本,以便在生产环境中构建。
Pipenv主要解决了以下问题:
- 我们不需要分开使用
pip
和virtualenv
,现在他们被合并了。 - 维护requirements.txt有时也会遇到一些问题,Pipenv使用
Pipfile
和Pipfile.lock
来抽象分开依赖定义 - 广泛使用Hash来保证安全
- 强力鼓励你使用最新的依赖版本降低安全风险
- 通过 pipenv graph更直观显示依赖图示
- 通过加载.env文件来实现流线型开发工作流
安装Pipenv
sudo pip install pipenv
Pipenv工作流程
进入项目
cd myproject
从Pipfile文件中安装
pipenv install
或者为项目指定加入package
pipenv install <package>
如果Pipfile
文件不存在时会创建一个,如果存在就会对其进行编辑,加入新包。
接下来激活Pipenv shell:
pipenv shell
退出
exit
更多指令
更新某个package
pipenv update requests
移除某个package
pipenv uninstall requests
安装到dev环境
pipenv install -dev parsel==1.3.1
显示依赖图示
$ pipenv graph
requests==2.20.1
- certifi [required: >=2017.4.17, installed: 2018.11.29]
- chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
- idna [required: >=2.5,<2.8, installed: 2.7]
- urllib3 [required: >=1.21.1,<1.25, installed: 1.24.1]
锁定版本
pipenv lock
环境变量
如果需要在环境中加入一些环境变量,可以将变量加入到.env文件中,在pipenv shell指令进入环境时,它会自动加载该文件的变量:
echo "FOO=BAR" > .env
pipenv shell
echo $FOO
编辑器支持
Pycharm当前已经支持pipenv包管理插件。