什么是 Pipenv
Pipenv是Kenneth Reitz在2017年1月发布的Python依赖管理工具,现在由PyPA维护。你可以把它看做是pip和virtualenv的组合体,而它基于的Pipfile则用来替代旧的依赖记录方式(requirements.txt)。
在这篇文章里,我将会以旧的依赖管理工作流程作为对比来介绍Pipenv的基本用法,更详细的用法可以参考Pipenv文档,或是Kenneth Reitz在PyCon 2018的演讲《Pipenv: The Future of Python Dependency Management》。
为什么使用 Pipenv
Pipenv会自动帮你管理虚拟环境和依赖文件,并且提供了一系列命令和选项来帮助你实现各种依赖和环境管理相关的操作。简而言之,它更方便、完善和安全。你可以通过Pipenv文档开头的介绍来了解它的详细特性。Pipenv的slogan是“Python Dev Workflow for Humans”,作为人类,当然应该尝试一下……
上面直接拿了别人的了,感觉自己也说不出来什么,总之就是用了 Pipenv 之后可以让你的 Python 环境管理方面变得更加简单快乐,方便我们的开发。
下载
-
首先 用 pip 来安装
pip install pipenv
-
下载完后你在终端输入
pipenv
应该会报错,因为 pipenv 默认安装在~/.local
下(其实红色字体也说明了),没有在PATH中, 运行python -msite --user-base
可以查看你安装的路径
-
这样我们就需要把安装路径下的 bin(这里我的就是
/home/rainbomsea/.local
) 添加到 PATH 中. -
打开
~/.bashrc
文件在最后一句加上export PATH=~/.local/bin:$PATH
- 保存退出 运行
source ~/.bashrc
, 这次输入pipenv
就会有成功了
使用
-
下载完就是创建了, 首先是进入到项目文件夹下(这里以example为例), 假设你需要
requests
这个模块 -
运行
pipenv install requests
(这里其实就是吧pipenv install
和pipenv install requests
两步当一步了)
-
如上图, 他首先会创建一个虚拟环境然后下载
requests
的相关模板,然后再在当前目录下创建了Pipfile
,Pipfile.lock
这两个文件 -
Pipfile
存放当前虚拟环境的配置信息,用来代替以前的requirements.txt
文件 -
Pipfile.lock
记录了当前环境中安装的依赖的版本号以及哈希,以保证每次装出来的依赖都是一致的。 -
图中
Virtualenv location: /home/rainbomsea/.local/share/virtualenvs/example-gBdafEu-
说明了你虚拟环境的安装位置 -
如果想吧环境就安装在当前目录下, 可以在当前目录下创建一个
.venv
文件夹,然后再执行pipenv install
,这样虚拟环境就会安装在项目文件夹下了 -
安装成功之后,我们可以创建一个简单的
main.py
来使用一下它
import requests
response = requests.get('https://httpbin.org/ip')
print('你的 IP 地址是 {0}'.format(response.json()['origin']))
- 然后用
pipenv run
运行这个文件
pipenv run python main.py
- 你可以获得类似这样的输出:
你的 IP 地址是 8.8.8.8
-
也可以使用
pipenv shell
来生成一个新的shell
这样就可以在shell
里面直接输入python main.py
来运行,exit
退出shell环境 -
可以通过
pipenv uninstall
来卸载你的包
pipenv uninstall requeste
- 删除环境的话可以直接使用
pipenv --rm
.不想用pipenv
了那就吧Pipfile
和Pipfile.lock
这两个文件都删了就行
pipenv --rm