Pipenv的使用
pipenv所解决的问题
requirements.txt依赖管理的局限
如果我要使用 flask, 我会在requirements.txt里面写上
flask
不过由于没有指定版本,因此在另一个环境通过pip install -r requirements.txt安装依赖模块时,会默认安装最新版本的flask,如果新版本向后兼容,这当然是没问题的。但是如果新版本不兼容旧的接口,那么就出问题了:代码无法在该环境运行。因此测试环境和生产环境的不一致出现了,同一份requirement.txt,结果出来2份不同的环境,这叫做 不确定构建 (the build isn’t deterministic) 问题。
- 创建虚拟环境
Pipenv install --three / --two(指定解释器的版本)
1.会在当前文件所在问目录下创建虚拟环境
- 进入虚拟环境
Pipenv shell
- 退出虚拟环境
exit()
- 安装第三方包
pipenv install 【模块名】
- 安装dev环境使用的包
pipenv install -dev requests
- 查看安装的包(使用pipenv命令可以清晰看出包之间的依赖关系)
pipenv graph
-修改pipenv的下载源,修改地址
- 卸载虚拟环境中的包
pipenv uninstall 包名
- 环境的迁移
1,创建另一个文件,将需要迁移环境的Pipfile,Pipfile-lockk复制下来
2,初始还虚拟环境
-导出requirements.txt
pipenv lock -r > requirements.txt
- 安装requirements.txt
pipenv install -r requirements.txt
- 其他命令
pipenv --where 列出本地工程目录
pipenv --venv 列出虚拟环境路径
pipenv --py 列出虚拟环境的python解释器
pipenv graph 查看包依赖
pipenv lock 生成lock文件
pipenv --rm 删除虚拟环境
pipenv --shell 激活虚拟环境
exit 退出虚拟环境
workon 查询当前所有虚拟环境