我有一个安装了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。
答案 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解释器以匹配生产服务器,那么它是值得的。