1. 介绍
pipenv是python官方推荐的包管理工具,这个是编写requests库的大佬写的,它集成了virtualenv, pip和pyenv三者的功能。其目的旨在集合了所有的包管理工具的长处,如: npm, yarn, composer等的优点。自动为项目创建和管理虚拟环境
2. 安装
pip install pipenv
3. 初始化pipenv环境
pipenv --three 或 pipenv --two (分别对应创建python3和python2虚拟环境)
4. 常用命令
- pipenv shell # 激活当前虚拟环境
- pipenv install # 安装包
- pipenv install requests==1.12 # 安装指定版本
- exit # 退出虚拟环境
- pipenv uninstall # 卸载依赖包
- pipenv uninstall --all # 删除所有依赖包
- pipenv lock # 生成Pipfile.file
- pipenv --rm # 删除虚拟环境
5. pipenv命令选项
$ pipenv
Usage: pipenv [OPTIONS] COMMAND [ARGS]...Options:
--where 显示项目文件所在路径
--venv 显示虚拟环境实际文件所在路径
--py 显示虚拟环境Python解释器所在路径
--envs 显示虚拟环境的选项变量
--rm 删除虚拟环境
--bare 最小化输出
--completion 完整输出
--man 显示帮助页面
--three / --two 使用Python 3/2创建虚拟环境(注意本机已安装的Python版本)
--python TEXT 指定某个Python版本作为虚拟环境的安装源
--site-packages 附带安装原Python解释器中的第三方库
--jumbotron An easter egg, effectively.
--version 版本信息
-h, --help 帮助信息
pipenv可使用的命令参数:
Commands:
check 检查安全漏洞
graph 显示当前依赖关系图信息
install 安装虚拟环境或者第三方库
lock 锁定并生成Pipfile.lock文件
open 在编辑器中查看一个库
run 在虚拟环境中运行命令
shell 进入虚拟环境
uninstall 卸载一个库
update 卸载当前所有的包,并安装它们的最新版本
6. 高级技巧
生成requirements.txt文件
pipenv lock -r > requirements.txt 生成requirements.txt文件
pipenv lock -r -d > requirements.txt dev-packages的requirements.txt文件
pip freeze >requirements.txt 激活pipenv文件中使用pip命令也能生成
导入requirements.txt文件
pipenv install 会自动安装requirements.txt中的依赖包并创建一个pipfile文件
同样可以使用 pipenv install -r requirements.txt 导入
使用国内镜像
[[source]] url = "https://pypi.python.org/simple" verify_ssl = true [dev-packages] [packages] [requires] python_version = "3.6"
将url替换以下国内源
阿里云:http://mirrors.aliyun.com/pypi/simple/ 豆瓣:http://pypi.douban.com/simple/ 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科学技术大学:https://pypi.mirrors.ustc.edu.cn/simple/
使用pipfile和pipfile.lock恢复环境
- 将两个文件导入到新的项目中,在项目路径下执行
- pipenv install 项目环境恢复
- pipenv install --dev 开发环境恢复
7. dev-packages 和 packages 区别
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
[dev-packages]
[packages]
[requires]
python_version = "3.6"
pipenv install 将包 安装到 packages 下
pipenv install --dev 将包 安装到 dev-packages 下
这两个区别在于如果我们想用自己的私有库或者测试库,可以安装到 dev-packages 下, 别的工作人员用这个库的时候pipenv install 的时候不会安装 dev-packages 下的库,举列:windows下开发Django需要安装 mysqlclient-1.4.2-cp36-cp36m-win_amd64.whl ,这个可以装在 dev-packages 下