【问题标题】:pip and virtualenv installing parts of django in the wrong placepip 和 virtualenv 将 django 的部分安装在错误的位置
【发布时间】:2015-09-10 02:37:48
【问题描述】:

我已经使用 virtualenv 几个星期了,直到今天没有任何问题。使用 pip 使用 -r requirements.txt 安装我的环境,它将 Django (v1.5) 的一部分安装在错误的位置。而不是将整个源代码放入:

env/lib/python2.7/site-packages/django/

它将部分 conf/ 和 contrib/ 放在:

env/django/

当然,像管理页面这样的 Django 部分将无法工作。当我将这两个目录移动到正确的位置时,一切正常,并且没有文件重复。我还尝试删除整个 env 目录并以相同的结果重新开始。

关于为什么 virtualenv 和 pip 将 django 的部分拆分到错误的位置(以及如何修复它)的任何想法?

【问题讨论】:

  • 尝试运行 which pip 和 which python 以确保使用正确的环境。

标签: python django pip virtualenv


【解决方案1】:

刚刚在我们的盒子里也遇到了同样的问题。通过删除此目录修复它

rm -rf ~/.cache/pip

路径可能因操作系统而异,请查看此链接以找到您的 pip 缓存目录https://pip.pypa.io/en/latest/reference/pip_install.html#caching

原因是我们在框中有一个损坏的 django 缓存,我在安装 django 时通过添加 -v 参数来查看详细输出:

pip install -v django==1.5

在我们的例子中,它只是安装而不下载任何东西。然后我添加了 --no-cache-dir 来安装一个干净的:

pip install -v django==1.5 --no-cache-dir

这次它可以工作了,virtualenv 的根目录下没有 conf 和 contrib 文件夹,而是文件保留在我们预期的 site-packages 中。在我们删除 ~/.cache/pip 之后,它也可以与 pip install django==1.5 一起正常工作

【讨论】:

  • pip install django==1.5 --no-cache-dir 对我来说很好——所有文件都按预期保留在 site-packages/django 文件夹中
  • 谢谢!这周我花了太多时间试图解决由此导致的错误。
  • 这也适用于 django 1.3.1 !我用 --force-reinstall 进行了强制重新安装
  • pip install django==1.3.7 --no-binary django --no-cache-dir --force-reinstall for pip 19.2.3 in 2019 - 这怎么能在 django 1.3 上运行这么长时间!!?
【解决方案2】:

将此行添加到 requirements.txt 的顶部:

--no-binary Django

(来自https://github.com/pypa/pip/issues/2823)

【讨论】:

  • 我发现我需要结合 --no-cache-dir 和 --no-binary Django 才能工作。
猜你喜欢
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 2016-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多