如何使用Python虚拟环境

10 投票
2 回答
25942 浏览
提问于 2025-04-16 16:17

场景是这样的:我在使用 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 个回答

2

在使用虚拟环境工具的时候,你不需要做什么复杂的操作。只需要加上 --python=python2.5 这个参数(想了解更多可以查查虚拟环境的手册)。你安装的版本其实没关系,关键是要在虚拟环境中选择正确的 Python 执行文件。

比如,你可以这样创建虚拟环境:mkvirtualenv --python=python2.5 --distribute python25。如果这个 Python 参数不管用,可以在你的 $PATH 中添加一个指向 python25 的符号链接(用 ln -s 命令),或者直接在 Python 参数中使用完整的路径。

另外,如果你安装了多个版本的 Python,默认情况下,每个 'altinstall' 版本都会有一个单独的 Python 和 easy_install。所以,比如说你会有: python2.5easy_install-2.5python2.6easy_install-2.6 等等。

15

步骤概述:

  • 首先进入目录 /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安装 virtualenvvirtualenvwrapper(运行 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。只需按照上面列出的步骤进行操作即可。

撰写回答