前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >virtualenv 、pythonbrew 和 pyenv 的探讨

virtualenv 、pythonbrew 和 pyenv 的探讨

原创
作者头像
serena
修改2021-08-03 14:56:05
1.1K0
修改2021-08-03 14:56:05
举报
文章被收录于专栏:社区的朋友们社区的朋友们

作者:劉騰龍

导语

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

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

  1. virtualenv
  2. pythonbrew
  3. pyenv

pythonbrew

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

virtualenv

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

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

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

代码语言:javascript
复制
virtualenv -p /usr/bin/python2.7 env2.7

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

代码语言:javascript
复制
virtualenv -p /usr/bin/python3.2 env3.4

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

env2.7

env3.4

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

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

代码语言:javascript
复制
 source env2.7/bin/activate
代码语言:javascript
复制
 source env3.4/bin/activate

pyenv

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

代码语言:javascript
复制
pyenv install --list

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

  • 2.7.9
  • 3.6.1
  • anaconda3-4.4.0
  • ironpython-2.7.7

安装Python 2.7.9的版本

代码语言:javascript
复制
pyenv install 2.7.9

切换Python 2.7.9的版本

代码语言:javascript
复制
pyenv global 2.7.9

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

代码语言:javascript
复制
2.7.9

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

比较

标题1

标题2

标题3

文本1

文本2

文本3

原理

优点

Virtualenv

进入特定目录,在虚拟环境(局域)下运作。

Python 版本一样,都可创建无限的局域环境,方便开发者在相同环境使用不同的 site-packages。

pyenv

利用shims 进行全域切换 Python的不同版本。

Python 从云端下载及即时安装,不需预先在本地安装不同版本才使用。

参考

virtualenv 安装及使用方法:https://virtualenv.pypa.io/en/stable pyenv 安装及使用方法:https://github.com/pyenv/pyenv Linux套件 - Tree 的安装及使用方法:https://www.computerhope.com/unix/tree.htm

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导语
  • pythonbrew
  • virtualenv
  • pyenv
  • 比较
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com