2014-11-06 45 views
10

我试图用virtualenvwrapper创建既python2和python3创建既python2和python3一个的virtualenv

virtualenv with python2 and python3 via Homebrew我希望这将工作的virtualenv:

(在virtualenv中的名称是“双“)

mkvirtualenv double -p `which python` 
mkvirtualenv double -p `which python3` 

它提到

Not overwriting existing python script both/bin/python (you must use both/bin/python3.4) 

但这似乎不是真的。键入pythonpython2.7python3python3.4全部开始python3.4解释器。

+8

你想通过这样做完成什么? virtualenvs的一个主要优点是将Python 2和Python 3隔离开来。 – Kevin 2014-11-06 15:07:31

+1

我正在研究一个在python2和python3中运行的项目。我不想一直切换virtualenv。 python2和python3在不同的地方有自己的pip版本和商店网站包,所以我没有看到问题。 – Zweedeend 2014-11-06 15:19:07

+6

如果目的是测试项目,请使用tox代替在Python 2和3中运行测试。否则,我建议在3.x中开发它并分别在2中运行它。这里提到的所有工具都是为每个virtualenv编写一个Python开发的,所以尽管事情最初看起来可行,但不能保证它会继续工作。 – 2014-11-06 16:41:05

回答

13

对不起,virtualenv旨在支持单个解释器版本。

如果您需要在同一代码库上使用多个python版本,请创建单独的虚拟环境。

0

我对这个涉及流浪/ VirtualBox的解决方案......(它有我开始一个Django probject引导设置,但它叉去野吧!)

包是在这里,https://github.com/andrewyoung1991/python-3.4.1-vagrant-bootstrap.git 一个虚拟env不幸是一个单一的python游戏,但与一个VirtualBox你可以在一个沙箱中自由工作调用python2或python3

3

virtualenv帮助你隔离环境。

它不能同时支持多个python版本。 您可以尝试pyenvpyenv-virtualenv。它支持您将文件夹更改为另一个python版本和工作环境。它很容易切换版本。

如果你不能安装pyenv并在Mac上工作。 anyenv可以帮助您安装pyenv

实施例:

$ pyenv install 3.4.1 
$ pyenv install 2.7.6 
$ pyenv virtualenv 3.4.1 mypy3 
$ pyenv virtualenv 2.7.6 mypy2 
$ pyenv versions 
    * system 
    3.4.1 
    2.7.6 
    mypy3 

$ cd /work/ 
$ pyenv local mypy3  # Use Py3 now 
$ pyenv local mypy2  # Use Py2 now 
5

virtualenv不支持多个解释器的版本。我的建议是为每个版本使用不同的环境:

virtualenv -p /usr/bin/python3.3 py3env 
virtualenv -p /usr/bin/python py2env