使用python2和python3创建一个virtualenv

使用python2和python3创建一个virtualenv,python,python-3.x,virtualenv,virtualenvwrapper,Python,Python 3.x,Virtualenv,Virtualenvwrapper,我尝试使用VirtualEnvRapper创建一个同时包含python2和python3的virtualenv 我希望这能奏效: (virtualenv的名称为“double”) 它提到 Not overwriting existing python script both/bin/python (you must use both/bin/python3.4) 但这似乎不是真的。键入pythonpython2.7python3和python3.4都会启动python3.4解释器 对不起,vi

我尝试使用VirtualEnvRapper创建一个同时包含python2和python3的virtualenv

我希望这能奏效:

(virtualenv的名称为“double”)

它提到

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

但这似乎不是真的。键入
python
python2.7
python3
python3.4
都会启动
python3.4
解释器

对不起,virtualenv是为支持单解释器版本而设计的


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

我有一个解决方案,涉及Vagrant/VirtualBox。。。(它有我启动django probject的引导设置,但是用叉子叉它,让它疯狂!)

包裹在这里,
不幸的是,虚拟环境是一个单一的python游戏,但是使用VirtualBox,您可以在一个名为python2或python3的沙箱中自由工作,virtualenv可以帮助您隔离环境

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

如果你不能安装pyenv并在Mac上工作。可以帮助您安装
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 

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

virtualenv -p /usr/bin/python3.3 py3env
virtualenv -p /usr/bin/python py2env
是。
(我知道这是一个老问题,但我现在看了这里,发现答案没有更新)。

你想通过这样做实现什么?virtualenvs的一个主要好处是为python2和python3隔离了不同的世界。我正在从事一个同时在python2和python3中运行的项目。我不想一直切换虚拟电视。python2和python3都有自己的pip版本,并且在不同的地方存储站点包,所以我不认为有问题。如果目的是测试项目,那么使用tox来运行python2和python3中的测试。否则,我建议在3.x中开发它,并在2中分别运行它。这里提到的所有工具都是在为每个virtualenv开发一个Python的情况下开发的,因此,虽然事情一开始看起来是可行的,但不能保证它会继续工作。我非常确定virtualenv不会提供这种保证,因为virtualenv根据定义是一个Python解释器版本的独立环境。为要测试的每个Python解释器创建一个版本。如果需要在多个解释器上运行,请处理virtualenv上面的这一层,就像用于运行测试的脚本(我们称之为test.sh)。
virtualenv -p /usr/bin/python3.3 py3env
virtualenv -p /usr/bin/python py2env
virtualenv -p /path/to/your/python/version/exectuable ENV