Python - Virtualenv,Python 3?
似乎大家都推荐在mac上使用virtualenv来管理多个Python版本,但它真的能和Python 3.0一起用吗?我下载了这个工具,但好像不太管用。而且我也不太明白它是怎么工作的。你是可以一次“开启”一个环境吗?我想保留系统自带的Python 2.5(这显而易见),然后想要一个Python 3.1.1的环境,里面装有subversion的pygame,用来写我自己的东西;同时还想要一个Python 2.6的环境,里面有稳定版的pygame,用来运行其他的程序,比如从pygame.org下载的pygame游戏。有没有什么办法可以做到这一点?谢谢。
好的,我意识到virtualenv并不是我想要的东西。
5 个回答
virtualenv
是用来创建独立的 Python 环境的工具。使用它来管理多个 Python 版本时,有两个方法可以做到:一种是把 virtualenv
安装到你想用的每个 Python 版本里,比如:
/usr/bin/easy_install-2.6 virtualenv
/usr/local/bin/easy_install virtualenv
sudo port install py26-virtualenv
另一种是直接用你想要的 Python 版本来运行它,比如:
/usr/bin/python2.6 virtualenv.py ENV
/usr/local/bin/python2.6 virtualenv.py ENV
/opt/local/bin/python2.5 virtualenv.py ENV
所以,它并不能直接解决你想用哪个 Python 的问题(在 OS X 上这个问题尤其明显)。有几种方法可以处理这个问题:使用绝对路径来指定你想用的 Python(就像上面的例子),定义一些命令别名,或者仔细管理 $PATH
的搜索顺序等等。
目前,尽我所知,virtualenv
不支持 Python 3,因为其中一个原因是 setuptools(这个工具让 easy_install 变得简单)还不支持 Python 3,不过现在有一些 正在进行的工作 来解决这个问题。
顺便提一下,很多人使用 Doug Hellman 的 virtualenvwrapper 来简化 virtualenv
的使用。
这个问题现在算是老问题了,但我在谷歌搜索时发现了它的答案,我觉得提供的答案并不是大家真正想要的。
我理解你是想创建不同的虚拟环境,每个环境使用不同的Python版本,对吧?
这其实很简单,你只需要用到virtualenv这个工具。
比如说,如果你想创建一个Python 3的环境,可以这样做:
$ virtualenv -p python3 p34env
(...)
New python executable in p34env/bin/python3.4
Also creating executable in p34env/bin/python
Installing setuptools, pip...done.
$ source p34env/bin/activate
(p34env)$ python -V
Python 3.4.2
(p34env)$ deactivate
$
你可以用source
命令来激活这个虚拟环境,然后用deactivate
命令来停用它,没错,就是这样。注意,当你激活环境后,命令行的提示符会发生变化,以显示你当前的环境。
如果你想使用系统默认的Python版本,只需跳过-p python3
这个参数,你也可以通过指定路径来使用任何你想要的版本。
最后一个参数是环境的名字(p34env
),你可以创建任意多个环境,只要给它们不同的名字就行。
你的情况其实不需要用到virtualenv。你只需要安装几个不同的Python版本就可以了。