【问题标题】:Pip won't install newest version of Django (using virtualenv)Pip 不会安装最新版本的 Django(使用 virtualenv)
【发布时间】:2015-08-19 08:05:23
【问题描述】:

我正在为我的 django 项目尝试 virtualenv,但遇到了一些问题。使用网络派系帐户。

现在我已经设置了一个 virtualenv,我正在尝试安装 Django 1.8.2,但是当我输入“pip install Django”或“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

所以它甚至不应该承认旧的安装,不是吗? 这只是一个测试用例,所以我可以将其全部删除并重新开始。

感谢任何帮助。

编辑:

当我输入“which 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]$

它正在使用缓存中的某些内容。我会继续胡闹,但仍然感谢任何见解!

【问题讨论】:

  • 你的系统 Python 中是否安装了 django?
  • pip install -I Django==1.8.2 没有解决这个问题?
  • @Martijin 我认为这行得通!现在如何更改活动版本?当我输入 django-admin.py --version 它仍然显示“1.7.8”
  • @MattPayne:你使用的是django-admin.py安装在虚拟环境中吗?
  • @MattPayne: head `which django-admin` 应该告诉你将使用什么解释器。它几乎肯定是错误的 Python 版本。

标签: python django pip virtualenv webfaction


【解决方案1】:

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

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

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

然后重新激活你的 virtualenv。

【讨论】:

    猜你喜欢
    • 2013-12-01
    • 2018-10-23
    • 1970-01-01
    • 2023-03-31
    • 2020-02-16
    • 2015-09-01
    • 2023-04-03
    • 1970-01-01
    • 2011-12-20
    相关资源
    最近更新 更多