有关三个 Python 虚拟环境管理工具的探讨

  • A+
所属分类:python基础入门

有关三个 Python 虚拟环境管理工具的探讨

本文经作者授权发布,未经授权请勿转载。

文 | tenlau(劉騰龍)@Tencent

自 Python3 出现后,很多lib的架构及用法已改变,以往 Python2 卻不支持,令不少开发者感得困扰,要解决这个 Python2 及3環境的切换问题,我们需要一个能夠把不同开发环境分开的工具。

简单搜索,我们发现了三个可以解决这个问题的工具,他们分别是:

  1. virtualenv

  2. pythonbrew

  3. pyenv

pythonbrew

在 Github 官方看到有关 pythonbrew 已经停止更新的讯息,并且鼓励用家使用 pyenv,其实 pythonbrew 与 pyenv 基本上是同样的工具,这样我们便剩下两个选择了。

有关三个 Python 虚拟环境管理工具的探讨

virtualenv

首先我们先说 Virtualenv (請先安裝該套件),运作原理如下:

在 Linux 上安装不同的 python 版本,比如说 Python2.7 及 Python3.2。

创建以 Python2.7 为解释器的环境:

  1. virtualenv -p /usr/bin/python2.7 env2.7

创建以 Python3.2 为解释器的环境:

  1. virtualenv -p /usr/bin/python3.2 env3.4

用 Linux 套件 Tree 查看两个环境的目录:

env2.7

有关三个 Python 虚拟环境管理工具的探讨

env3.4

有关三个 Python 虚拟环境管理工具的探讨

当我们创建不同的环境时,virtualenv 会把系统内安装了的各 Python 版本的相关库及套件复制到我们的指定目录下,以目录来隔离各版本的 Python,详细图示:

有关三个 Python 虚拟环境管理工具的探讨

日后我们只要激活所需环境便可在不同环境进行开发:

  1. source env2.7/bin/activate

  2. source env3.4/bin/activate

pyenv

顺利安装了 pyenv 后,查询可安装的版本。

  1. pyenv install --list

我们可以看到不同的 Python 版本,因为列表很长,只列举当中几个:

  • 2.7.9

  • 3.6.1

  • anaconda3-4.4.0

  • ironpython-2.7.7

安装 Python 2.7.9 的版本

  1. pyenv install 2.7.9

切换 Python 2.7.9 的版本

  1. pyenv global 2.7.9

在/home/user/.pyenv/versions 目录下便会看到:

  1. 2.7.9

当选择该 Python 版本安装时,pyenv 会从云端下载有关套件并储存在 .pyenv/versions/ 目录下,环境切换则透过嵌入模组 shims 注入路径来决定使用什么版本的 Python,详细图示:

有关三个 Python 虚拟环境管理工具的探讨

比较

原理 优点
Virtualenv 进入特定目录,在虚拟环境(局域)下运作。 Python 版本一样,都可创建无限的局域环境,方便开发者在相同环境使用不同的 site-packages。
pyenv 利用shims 进行全域切换 Python的不同版本。 Python 从云端下载及即时安装,不需预先在本地安装不同版本才使用。

参考

  1. virtualenv 安装及使用方法:https://virtualenv.pypa.io/en/stable

  2. pyenv 安装及使用方法:https://github.com/pyenv/pyenv

  3. Linux 套件 - Tree 的安装及使用方法:https://www.computerhope.com/unix/tree.htm

题图:pexels,CC0 授权。

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: