有没有办法用pip安装django指向virtualenv

时间:2015-06-23 11:23:58

标签: python django pip virtualenv

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

我想运行目前已安装的django 1.7。如果我在virtualenv之外运行django,它默认使用python2.6。我自己没有安装它。

我认为解决这个问题的方法是创建一个虚拟现实。我已经完成了,并使用了--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解释器。解释器运行2.7,如果我导入django,一切正常。但是一旦我跑了

  

django-admin.py startproject project_name

它又回到使用2.6。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

您可以使用pyenv,这将允许您根据您所在的目录设置Python解释器。我还将其与pyenv-virtualenv一起使用,以便我获得所有好处隔离我的应用程序包。

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