在python2和python3之间切换为默认python

时间:2016-09-30 09:33:12

标签: python python-3.x virtualenv python-2.x pyenv

有没有一种标准方法可以在python2和python3之间切换为默认python,类似于virtualenv如何用于在不同的沙盒python环境之间切换?

我想避免手动摆弄符号链接和PATH变量,以便解决方案是可移植的。

因为它是关于切换python版本的,所以解决方案最好不是用python编写的,而是用bash或者便携式编写的。

理想情况下,我想为nodejs找到类似于nvm的东西,或者为Ruby找到类似于rbenv的东西。

4 个答案:

答案 0 :(得分:1)

This告诉我们如何使用update-alternatives和/或在~./bashrc中使用别名:alias python=/usr/local/bin/python2.7

答案 1 :(得分:1)

有一种方式,它被称为Conda(你可以安装Miniconda开始)。

它允许您创建虚拟环境,您可以在其中指定要使用的Python解释器版本。例如:

conda create -n new_environment python=3.5

Conda将为您下载口译员,因此您无需在系统中使用口译员。

从那里开始,您可以安装软件包而无需编译它们(如果它们不是用Python完全编写的话),如果你在Windows上,这是非常方便的。因此,例如,conda install numpy matplotlib将不要求您编译任何这些包。

答案 2 :(得分:0)

我猜你在谈论在Windows下使用Python,因为你提到了PATH变量。最新版本的Python3附带了所谓的Python启动器。您可以运行py -2以启动Python2解释器和py -3以启动Python3解释器。我希望这能回答你的问题。

答案 3 :(得分:0)

经过一些更多的研究后,看起来可能的解决方案pyenvpyenv tutorial 中描述的用法相似,但 只能识别一个单个系统范围的python运行时(此时默认为),不提供在系统范围的python2和python3之间切换的选项。

看起来pyenv只能在系统python和通过pyenv显式安装的任何版本之间切换,这些版本都可以通过pyenv install --list看到并安装在例如{ pyenv install 3.5.2。换句话说,必须通过pyenv安装python3才能在2和3之间切换。

Pyenv can integrate with virtualenv这对于开发测试来说非常方便,因为它包括所有版本的anaconda,miniconda,pypy,jython,stackless等。它可能是安装多个版本的python的最简单方法,它们不附带你的包管理器,即在他们的回购中没有现代python的旧Linux发行版。

但从长远来看,考虑到所有事情,我发现metatoaster提出的解决方案更简单,完全符合我的要求,因为我可以使用python2 virtualenv来创建python2和python3环境而不需要任何开销:

python -V
Python 2.7.12
mkdir -p ~/.virtualenvs && cd ~/.virtualenvs
virtualenv -p /usr/bin/python3 mypy3env
workon mypy3env
python -V
>>> Python 3.5.2