如何使用Python虚拟环境
场景是这样的:我在使用 Ubuntu 11,这个系统自带 Python 2.7,但我想运行 Mozilla JetPack,它支持 Python 2.5/2.6,还有 Google App Engine,只支持 Python 2.5。
我听说直接删除 Python 2.7 不是个好主意,因为 Ubuntu 可能会用到它。所以正确的方法是使用 virtualenv。不过我对这个有点迷茫。我按照这个指南在 /usr/local/python25 安装了 Python 2.5。
我试过
jiewmeng@JM:/usr/local/python25/bin$ ./python --version
Python 2.5.5
jiewmeng@JM:/usr/local/python25/bin$ ./python virtualenv /works/tmp/test
./python: can't open file 'virtualenv': [Errno 2] No such file or directory
然后下面的代码可以运行,但我还是在用 Python 2.7。
jiewmeng@JM:/usr/local/python25/bin$ virtualenv /works/tmp/test
New python executable in /works/tmp/test/bin/python
Installing distribute.................................................................................................................................................................................done.
jiewmeng@JM:/usr/local/python25/bin$ cd /works/tmp/test/bin
jiewmeng@JM:/works/tmp/test/bin$ ls
activate activate_this.py easy_install easy_install-2.7 pip python
jiewmeng@JM:/works/tmp/test/bin$ ./python --version
Python 2.7.1+
另外,我该如何用这个版本的 Python 来运行 Mozilla JetPack 或 Google App Engine 呢?抱歉,我对 Python(还有 Linux/Ubuntu)很陌生。
相关问题:
2 个回答
在使用虚拟环境工具的时候,你不需要做什么复杂的操作。只需要加上 --python=python2.5 这个参数(想了解更多可以查查虚拟环境的手册)。你安装的版本其实没关系,关键是要在虚拟环境中选择正确的 Python 执行文件。
比如,你可以这样创建虚拟环境:mkvirtualenv --python=python2.5 --distribute python25。如果这个 Python 参数不管用,可以在你的 $PATH 中添加一个指向 python25 的符号链接(用 ln -s 命令),或者直接在 Python 参数中使用完整的路径。
另外,如果你安装了多个版本的 Python,默认情况下,每个 'altinstall' 版本都会有一个单独的 Python 和 easy_install。所以,比如说你会有: python2.5 、easy_install-2.5 、python2.6 、easy_install-2.6 等等。
步骤概述:
- 首先进入目录
/usr/local/python25/bin - 下载适用于Python2.5的setuptools(可以在这里找到:setuptools-0.6c11-py2.5.egg)
- 安装它(运行
sh setuptools-0.6c11-py2.5.egg)。 - 现在安装pip(运行
easy_install pip)。 - 使用pip安装
virtualenv和virtualenvwrapper(运行pip install v...等等)。 - 配置WORKON_HOME,以便virtualenv wrapper可以正常工作(运行
export WORKON_HOME = $HOME/.virtualenvs)。你可以使用任何你想要的目录(不仅限于 $HOME/.virtualenvs)。只要确保使用完整路径即可。 - 现在创建一个virtualenv(运行
mkvirtualenv foobar)。 - 切换到新创建的virtualenv(运行
workon foobar)。 - 现在可以使用
pip install blah安装GAE、JetPack和你想要的任何东西。
为什么你的安装没有成功?
看起来你没有为Python2.5安装virtualenv。所以这就不行。
jiewmeng@JM:/usr/local/python25/bin$ ./python virtualenv /works/tmp/test
你可以通过在那个目录运行 ls 命令来检查。我怀疑你在那儿找不到 virtualenv 文件。
不过这对你来说是有效的。
jiewmeng@JM:/usr/local/python25/bin$ virtualenv /works/tmp/test
因为它使用的是系统默认的Python2.7的 virtualenv 文件。你可以运行 which virtualenv 并打开 virtualenv 脚本。你会看到 #! 指向的是系统默认的python。
所以在你能为Python 2.5创建virtualenv之前,你需要为Python 2.5安装easy_install和pip。只需按照上面列出的步骤进行操作即可。