pip和virtualenv在错误的地方安装django的部分

Sco*_*ott 10 python django pip virtualenv

我一直在使用virtualenv几个星期,直到今天没有任何问题.使用pip使用-r requirements.txt安装我的env,它正在将错误的地方安装Django(v1.5)的一部分.而不是将整个来源放入:

env/lib/python2.7/site-packages/django/
Run Code Online (Sandbox Code Playgroud)

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

env/django/
Run Code Online (Sandbox Code Playgroud)

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

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

Siy*_*ang 8

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

rm -rf ~/.cache/pip
Run Code Online (Sandbox Code Playgroud)

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

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

pip install -v django==1.5
Run Code Online (Sandbox Code Playgroud)

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

pip install -v django==1.5 --no-cache-dir
Run Code Online (Sandbox Code Playgroud)

它这次工作,virtualenv的根目录中没有conf和contrib文件夹,而是文件保留在我们期望的site-packages中.在我们删除〜/ .cache/pip之后,它也适用于pip install django == 1.5