Python - Virtualenv,Python 3?

9 投票
5 回答
10961 浏览
提问于 2025-04-15 14:17

似乎大家都推荐在mac上使用virtualenv来管理多个Python版本,但它真的能和Python 3.0一起用吗?我下载了这个工具,但好像不太管用。而且我也不太明白它是怎么工作的。你是可以一次“开启”一个环境吗?我想保留系统自带的Python 2.5(这显而易见),然后想要一个Python 3.1.1的环境,里面装有subversion的pygame,用来写我自己的东西;同时还想要一个Python 2.6的环境,里面有稳定版的pygame,用来运行其他的程序,比如从pygame.org下载的pygame游戏。有没有什么办法可以做到这一点?谢谢。

好的,我意识到virtualenv并不是我想要的东西。

5 个回答

1

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 的使用。

14

这个问题现在算是老问题了,但我在谷歌搜索时发现了它的答案,我觉得提供的答案并不是大家真正想要的。

我理解你是想创建不同的虚拟环境,每个环境使用不同的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),你可以创建任意多个环境,只要给它们不同的名字就行。

3

你的情况其实不需要用到virtualenv。你只需要安装几个不同的Python版本就可以了。

撰写回答