vlambda博客
学习文章列表

python的各种包环境管理工具 virtualenv,pyenv,pipenv

如果你是第一次接触python的环境管理,那你一定会头晕,因为有太多的环境管理工具包,多到你不知道该选择哪一个作为自己的python环境管理工具。

这么多环境管理工具它们都有什么特点,它们是怎么产生的,我们到底应该选择哪一个作为我们的主力环境管理工具,下面我们将一一介绍。




python独立环境

众所周知,python因为有着强大的第三方包扩展,所以开发应用非常的便捷,但是不同包的版本依赖问题是一个很头痛的问题,特别是不同项目对python包的不同版本的依赖,导致开发效率大大降低,为此python出现了各种环境管理工具,通过它们我们可以隔离出一个独立的python环境,也就是不同项目采用不同的环境,我们就间接地解决了python包版本依赖问题。


python的各种包环境管理工具 virtualenv,pyenv,pipenv


Virtualenv

它是一个非常受欢迎的工具,它为 Python 库创建了一个独立的环境。它的工作原理是在目录中安装一堆文件(例如:env/),然后修改 PATH 环境变量以使用自定义 bin 目录(例如:env/bin/ )充当前缀。python2 或 python3 二进制的副本执行文件会被放置在此目录中。进入目录激活它之后,我们就可以使用 pip 在虚拟环境中安装包 。

python的各种包环境管理工具 virtualenv,pyenv,pipenv


pyenv

它用于隔离 Python 版本。例如,您可能希望根据 Python 2.7、3.6、3.7 和 3.8 测试代码,因此您需要一种方法来在它们之间切换。使用pyenv,我们就可以在不同python版本之间进行切换。激活后,它将PATH 环境变量的前缀修改为#/.pyenv/shims,pyenv还使用命令pyenv 安装,使下载和安装多个 Python 版本的过程变得更加容易。



pyenv-virtualenv

是 pyenv的插件,它让我们可以同时方便地使用pyenv 和 virtualenv。通过使用它,我们不仅可以在不同python版本之间进行切换,还可以在不同包的版本之间进行管理。


virtualenvwrapper

它是virtualenv的扩展,通过使用它,我们可以方便地在不同的虚拟目录进行切换,它提供了更加便捷地切换虚拟目录的方式,现在很多编辑器都集成了它,或者通过扩展支持它。


pipenv

它是诞生最晚的一个包环境管理工具,它通过使用pipfile将pip,virtualenv结合了起来。

pipenv通过一个pipfile.lock进行管理版本的升级和更新。使用pipenv就和pip的命令是一样的,不同的是它多了环境的版本管理,如果你接触过java的maven之后,就会发现它们很类似。



总结

如果你是一个新人的话,那么pipenv一定是你首选的包环境管理工具,它抛弃了历史遗留问题,并且使用更优化和先进的方式来管理包依赖,可以说对于包环境依赖,目前没有比它更合适的工具了。