2015-06-24 15 views
8

Tôi đã sử dụng virtualenv trong vài tuần mà không gặp bất kỳ sự cố nào cho đến hôm nay. Sử dụng pip để cài đặt env của tôi bằng cách sử dụng -r requirements.txt, nó đang cài đặt một phần của Django (v1.5) ở sai vị trí. Thay vì đưa toàn bộ nguồn vào:pip và virtualenv cài đặt các bộ phận của django ở địa điểm sai

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

nó được đặt các bộ phận của conf/và contrib/tại địa chỉ:

env/django/ 

Tất nhiên, các bộ phận của Django như trang quản trị sẽ không hoạt động. Khi tôi di chuyển hai thư mục này vào đúng vị trí, mọi thứ đều hoạt động tốt và không có tệp trùng lặp nào. Tôi cũng đã thử xóa toàn bộ thư mục env và bắt đầu lại với cùng một kết quả.

Bất kỳ ý tưởng nào về lý do tại sao virtualenv & pip đang tách các phần của django thành địa điểm sai (và cách khắc phục)?

+0

Cố gắng chạy 'pip' và' which python' để đảm bảo rằng bạn sử dụng đúng môi trường. –

Trả lời

6

Vừa gặp cùng vấn đề trong hộp của chúng tôi. cố định nó bằng cách xóa thư mục này

rm -rf ~/.cache/pip 

con đường có thể khác nhau bởi hệ điều hành, kiểm tra liên kết này để tìm thư mục bộ nhớ cache pip bạn https://pip.pypa.io/en/latest/reference/pip_install.html#caching

Lý do là chúng ta có một bộ nhớ cache hỏng của django trong hộp bằng cách nào đó, tôi thấy điều này bằng cách thêm tham số -v khi bạn cài đặt django để xem kết xuất chi tiết:

trong trường hợp của chúng tôi, nó chỉ được cài đặt mà không tải xuống bất kỳ thứ gì. sau đó tôi thêm --no-cache-dir để cài đặt một sạch một:

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

nó hoạt động thời gian này, không có conf và contrib thư mục trong thư mục gốc của virtualenv, thay vì các tập tin ở trang web gói mà là chúng ta mong đợi. và sau khi chúng tôi loại bỏ ~/.cache/pip, nó cũng hoạt động tốt với pip cài đặt django == 1,5

+1

'pip install django == 1.5 --no-cache-dir' hoạt động tốt cho tôi - tất cả các tệp vẫn ở trong gói trang web/thư mục django như mong đợi –

+0

Cảm ơn vì điều đó! Tôi đã dành quá nhiều thời gian trong tuần này để cố gắng giải quyết một lỗi mà điều này đã gây ra. –

Các vấn đề liên quan