有没有办法用 pip 安装 django 以指向 virtualenv 中 python 的特定版本

Is there a way to install django with pip to point to a specific version of python in virtualenv

我有一个安装了 CentOS 的系统。当前 运行s python2.6,但 python2.7 也已安装。

我想要 运行 django 1.7,目前也已安装。如果我 运行 django 在 vi​​rtualenv 之外,它默认使用 python2.6。不是我自己安装的。

我认为解决这个问题的方法是创建一个 virtualenv。我已经完成并使用了--python=python2.7。但是当我创建 virtualenv 并在其中安装一个新的 django 1.7(使用 pip)时,它仍然使用 python2.6 而不是 2.7.

因为我都是通过 ssh 来做这件事的,所以我想要一个简单的方法来绕过它(而不是从源代码编译等)。当我在 virtualenv 中使用 pip 安装 django 时,有没有办法指定它使用 python2.7?或者纠正这个问题的正确方法是什么?

这是我所做的:

ssh 进入账户。

$ mkdir project; cd project
$ virtualenv env --python=python2.7
$ cd env
$ source bin/activate
$ sudo easy_install-2.7 pip
$ pip install django==1.7

然后我进入我的 python 解释器。解释器是 运行ning 2.7,如果我导入 django,一切正常。但是一旦我 运行

django-admin.py startproject project_name

恢复使用 2.6。

在您激活的 virtualenv 中像这样 python django-admin.py 调用 django-admin.py。或者你可以做 /path/to/virtualenv/bin/python django-admin.py。 最好的解决方案可能是向 django-admin.py 添加一个看起来像 #!/usr/bin/env python 的 shebang,它应该使用活动 virtualenv 的 python 解释器。参见

您可以使用 pyenv, which will allow you to set your Python interpreter based on what directory you're in. I also use it with pyenv-virtualenv,这样我就可以享受按应用程序隔离包的所有好处。

有一点学习曲线,但如果您需要切换 Python 解释器以匹配生产服务器,那么这是值得的。