我想在一个新的virtualenv中安装Django的版本1.3.1 。我已经在系统范围内安装了Django 1.3.0版。我已经使用no-site-packages
安装了virtualenv,并尝试按如下方式重新安装Django,但没有成功:
$ virtualenv --no-site-packages pyenv
New python executable in pyenv/bin/python
Installing setuptools............done.
Installing pip...............done.
$ source pyenv/bin/activate
(pyenv)$ python
Python 2.6.6 (r266:84292, May 26 2011, 21:27:16)
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(1, 3, 0, 'final', 0)
好的,所以即使我没有安装Django并使用no-site-packages
,virtualenv仍然以某种方式选择了系统版本。
现在尝试用版本1.3.1覆盖它:
(pyenv)$ pip install django==1.3.1
Downloading/unpacking django==1.3.1
Downloading Django-1.3.1.tar.gz (6.5Mb): 6.5Mb downloaded
Running setup.py egg_info for package django
Installing collected packages: django
Found existing installation: Django 1.3
Not uninstalling Django at /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages, outside environment /Users/anna/Dropbox/code-local/pyenv/pyenv/bin/..
Running setup.py install for django
changing mode of build/scripts-2.6/django-admin.py from 644 to 755
changing mode of /Users/anna/Dropbox/code-local/pyenv/pyenv/bin/django-admin.py to 755
Successfully installed django
Cleaning up...
(pyenv)$ python
Python 2.6.6 (r266:84292, May 26 2011, 21:27:16)
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
那还没有奏效,它仍然指向1.3.0!
请注意以下行:Found existing installation: Django 1.3 Not uninstalling Django
。
如何强制我的virtualenv使用1.3.1?我是否需要编辑本地Python路径?
我很困惑为什么virtualenv甚至可以在我明确安装no-site-packages
时看到系统Django。这是它应该如何工作的吗?
答案 0 :(得分:4)
使用--no-site-packages
创建并激活virtualenv后,应该无法访问django包。
我假设你以某种方式修改了PYTHONPATH
来提供它。 echo $PYTHONPATH
(我的是空字符串)
尝试运行pip freeze
,这就是它的样子:
$> virtualenv --no-site-packages testenv
New python executable in testenv/bin/python2.7
Also creating executable in testenv/bin/python
Installing setuptools............done.
Installing pip...............done.
$> source testenv/bin/activate
(testenv)$> pip freeze
wsgiref==0.1.2
答案 1 :(得分:1)
您可以使用-U选项进行升级。
pip install -U django == 1.3.1
答案 2 :(得分:1)
我认为不应该强制执行django 1.3.1,而应该退后一步,调查可能出错的原因:
site-packages
目录的内容是什么?django.__file__
中是否有任何自定义项,或者您使用的是用户站点目录?值得一提的是,我使用了site.py
选项的相同命令,我无法导入系统安装的django版本。
答案 3 :(得分:0)
我和virtualenv的情况相同。我用这个步骤解决了我的问题:
打开shell并输入:
python
import django
django.__path__
这将告诉你应该删除旧版django的路径。
转到该目录并使用root选项(我认为你需要这个来删除目录)和sudo并输入以下命令:
rm -r Django
rm -r Django-1.3.0.egg-info/
最后,安装Django 1.3.1