Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pip and virtualenv installing parts of django in the wrong place

I have been using virtualenv for a few weeks now without any problems until today. Using pip to install my env using -r requirements.txt, it is installing part of Django (v1.5) in the wrong place. Instead of putting the entire source into:

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

it is putting parts of conf/ and contrib/ at:

env/django/

Of course, parts of Django like the admin page would not work. When I moved these two dirs into the correct location, everything works fine, and there was no duplication of files. I also tried deleting the entire env directory and starting all over with the same result.

Any ideas as to why virtualenv & pip are splitting off parts of django into the wrong place (and how to fix it)?

like image 564
Scott Avatar asked Jun 24 '15 03:06

Scott


Video Answer


1 Answers

Just met the same issue in our box too. fixed it by deleting this directory

rm -rf ~/.cache/pip

path may differ by OS, check this link to find your pip cache directory https://pip.pypa.io/en/latest/reference/pip_install.html#caching

The reason is we have a corrupted cache of django in the box somehow, I found this by adding -v parameter when you install django to see the verbose output:

pip install -v django==1.5

in our case, it's just installed without downloading anything. then i added --no-cache-dir to install a clean one:

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

it works this time, there is no conf and contrib folder in the root of virtualenv, instead the files stay in site-packages which is we expected. and after we remove ~/.cache/pip, it also works fine with pip install django==1.5

like image 116
Siyuan Zhang Avatar answered Oct 16 '22 15:10

Siyuan Zhang