再见 virtualenv!K神教你轻松管理多个Python环境

小编电脑上有多个 Python 开发环境,每次都是用 virtualenv 创建一个 Python 虚拟环境,pip 安装第三方库,把每次安装的库和版本信息写入一个requirements.txt文件中,管理一个开发环境要用好几个软件,感觉非常不方便。

作为一名程序员,小编在想是否可以通过一个工具实现 Python 开发环境的轻松管理呢。小编在 Github 上找到了一个牛逼的工具,完美的解决了Python 版本及包的管理问题。

它叫 pipenv ,这个管理工具是 Kennethreitz 大神的作品,K神在Python界非常有名,其中大名鼎鼎的request库就是K神写的,这个库 Github 上也收获了 20900 颗星。

一、如何安装

直接用 pip install pipenv

二、常见的操作

1).创建虚拟环境

切换到你的项目根目录,执行 pipenv —Python Python版本,就会生成虚拟环境。

注意命令中指定的Python版本必须是你系统上存在指定的 Python 版本,否则就会报如下错误:

2).安装和卸载Python模块

安装第三方库就可以不用 pip了,可以使用 pipenv install 库名,语法和 pip 指令类似,安装 httpx 执行的指令如下:

卸载第三方库时,执行 pipenv unstall 库名这个命令即可,例如卸载 django:

3).查看项目环境所安装的第三方库

执行 pipenv graph 就会列出你所安装的第三方库信息,还能查看各个库之间的依赖关系。

pipenv 使用 Pipfile 来代替 requirement.txt 文件记录 Python第三方库 的信息。它增加了Pipfile.lock 文件来锁定Python 第三方库的包名及版本,以及其依赖关系的列表。在开发环境下我们要安装 pytest 这样的库,这些在生产环境其实是用不上的,所以没必要记录到 Pipfile 中,那么我们在安装某个包的时候可以在 install 后面加个参数 —dev,表示只安装在开发环境,安装包记录是在[dev-packages] 部分。在安装时,指定—dev参数,则只安装 [dev-packages] 下的包,若安装时不定指定—dev参数,只会安装[packages] 包下面的模块。[requires] 下的 Python 在构建新的虚拟环境时,若没有会自动下载安装。

项目提交时,可将Pipfile 文件和Pipfile.lock文件受控提交,待其他开发克隆下载,根据此 Pipfile 运行命令pipenv install 生成自己的虚拟环境。

Pipfile.lock 文件是通过hash算法将包的名称和版本,及依赖关系生成哈希值,可以保证包的完整性。

使用 pipenv 第三方库后不用再额外执行其他记录第三方库信息的操作,它会自动记录新安装的第三方库信息到 Pipfile 和 Pipfile.lock 文件中。

4).运行 Python 脚本

运行 Python 脚本时无需执行激活虚拟环境,直接在项目中的 Pipfile 同级目录下执行 Pipenv run Python 脚本文件即可。

5).Pycharm 中引入 pipenv 中的虚拟环境

执行 pipenv —venv 得到当前虚拟环境的文件夹位置

找到虚拟环境文件夹所在位置,并选中 bin 目录下的 Python 后,就可以用 Pycharm 引入虚拟环境了

找到虚拟环境文件夹所在位置,并选中 bin 目录下的 Python 后,就可以用 Pycharm 引入虚拟环境了

小编比较喜欢 pipenv 自动记录新安装的第三方库的信息,再也不用怕忘记更新项目依赖库的信息了,有兴趣的小伙伴赶紧试试哦。


程序员GitHub,现已正式上线!

接下来我们将会在该公众号上,专注为大家分享GitHub上有趣的开源库包括Python,Java,Go,前端开发等优质的学习资源和技术,分享一些程序员圈的新鲜趣事。

目前wx搜索Python 【菜鸟学Python】排第二,汇聚了30万Python爱好者,累计原创近400篇趣味干货(爬虫,数据分析,算法,面试指南,原创趣味实战,Python游戏,机器学习),欢迎一起学Python,交流指正。

推荐阅读更多精彩内容