Pip不会安装最新版本的Django(使用virtualenv)

时间:2015-06-04 15:49:15

标签: python django pip virtualenv webfaction

我为我的django项目尝试了virtualenv,我遇到了一些小问题。使用webfaction帐户。

现在我已经设置了virtualenv并且我正在尝试安装Django 1.8.2,但是当我进入" pip install Django" OR" pip install Django == 1.8.2"它总是只安装Django-1.7.8并将其用作活动版本。

这是我命令行中的一些代码:

(django_test)[pattmayne@web476 django_test]$ pip install Django==1.8.2
Collecting Django==1.8.2
  Using cached Django-1.8.2-py2.py3-none-any.whl
Installing collected packages: Django
  Found existing installation: Django 1.7.8
    Not uninstalling Django at /home/pattmayne/lib/python3.4/Django-1.7.8-py3.4.egg, outside environment /home/pattmayne/webapps/django_test
Successfully installed Django-1.7.8

然后我测试了django-admin的版本:

(django_test)[pattmayne@web476 django_test]$ django-admin.py --version
1.7.8

当我尝试django-1.8.0或1.8.1

时,我得到相同的结果

有人知道我做错了吗?

当我设置virtualenv时,我写道:

virtualenv . --no-site-packages

所以它甚至不应该承认旧的装置,不是吗? 这只是一个测试案例,所以我没有任何问题删除它并重新开始。

感谢任何帮助。

编辑:

当我键入" django-admin.py"它使用了virtualenv中的一个。当我使用" pip install -I Django == 1.8.2"它会下载正确的,但会安装错误的。

这里还有来自命令行的更多输出:

(blog_test)[pattmayne@web476 blog_test]$ pip install -I Django==1.8.2
Collecting Django==1.8.2
  Using cached Django-1.8.2-py2.py3-none-any.whl
Installing collected packages: Django
Successfully installed Django-1.7.8
(blog_test)[pattmayne@web476 blog_test]$ which django-admin.py
~/bin/django-admin.py
(blog_test)[pattmayne@web476 blog_test]$ django-admin.py --version
1.7.8
(blog_test)[pattmayne@web476 blog_test]$ bin/django-admin.py --version
-bash: bin/django-admin.py: Permission denied
(blog_test)[pattmayne@web476 blog_test]$

它使用缓存中的某些内容。我一直在搞乱,但任何见解仍然受到赞赏!

1 个答案:

答案 0 :(得分:0)

问题是WebFaction有一个系统范围的站点自定义策略,它将$HOME/lib/pythonX.Y注入到您的Python搜索路径中。许多年前,在virtualenv被广泛使用之前,这已经实施。出于某种原因,virtualenv似乎无法忽略像这样的系统范围的政策。

解决方案是通过在virtualenv的sitecustomize.py目录中创建一个空的lib/pythonX.Y来覆盖系统策略,例如:

touch /home/you/path/to/virtualenv/lib/pythonX.Y/sitecustomize.py

然后重新激活你的virtualenv。