Tôi đang cố gắng thiết lập môi trường phát triển trên máy tính dev mới của tôi ở nhà. Tôi vừa cài đặt Ubuntu và bây giờ tôi đang cố gắng sao chép một repo từ xa từ máy chủ web của chúng tôi và cài đặt các phụ thuộc của nó để tôi có thể bắt đầu công việc.Pip không cài đặt gói vào virtualenv được kích hoạt, bỏ qua requirements.txt
Cho đến nay tôi đã cài đặt thủ công virtualenv
và virtualenvwrapper
từ pypi và chỉnh sửa bash.rc của tôi một cách thích hợp để nguồn virtualenv của tôi khi tôi khởi động thiết bị đầu cuối của mình. Sau đó tôi nhân bản repo của mình thành ~/projects/project-name/websitename.com
. Sau đó, tôi đã sử dụng virtualenvwrapper
để mkvirtualenv env-name
từ ~/projects/project-name/websitename.com
. Điều này phản ánh chính xác số file-structure/setup
của máy chủ web mà tôi đang nhân bản. Càng xa càng tốt.
Tôi đã đăng nhập vào máy chủ dev và kích hoạt virtualenv
ở đó và sử dụng pip freeze -l > req.txt
để hiển thị danh sách phụ thuộc và scp vào máy cục bộ của tôi. Tôi kích hoạt virtualenv
trên máy cục bộ của mình, điều hướng đến số ~/projects/project-name/websitename.com
và thực hiện pip install -r path-to-req.txt
và nó chạy qua tất cả các phụ thuộc như thể không có gì sai. Tuy nhiên, khi tôi cố gắng để manage.py syncdb
tôi nhận được một lỗi về việc không tìm các gói django lõi. Cái quái gì thế? Vì vậy, tôi con số bằng cách nào đó Django không cài đặt, i run pip install Django==1.5.1
và nó hoàn thành thành công. Tôi đã thiết lập lại trang web của mình và gặp lỗi khác về không có mô-đun có tên django_extensions
. Được rồi, cái quái gì với nó, tôi vừa cài đặt tất cả các gói này bằng pip ?!
Vì vậy, tôi pip freeze -l > test.txt
và cat test.txt
, danh sách này là gì? Django==1.5.1
, một gói tôi vừa cài đặt theo cách thủ công. Tại sao pip không cài đặt các phụ thuộc của tôi từ danh sách được chỉ định của tôi vào virtualenv của tôi? Tôi đang làm gì ở đây?
-EDIT -------------
nào pip mang lại cho tôi đường dẫn đến pip trong virtualenv tôi
Tôi chỉ có 1 virtualenv và nó được kích hoạt
Mọi thứ bạn đang làm có vẻ ổn, hãy thử gỡ lỗi bằng 'pip' nào. – elyase
cũng thử 'find ~/.virtualenvs -type d -iname" anypackage "' để xem các gói yêu cầu của bạn có được cài đặt hay không. Ngoài ra, tôi khuyên bạn nên sử dụng 'https: // gist.github.com/insin/1425703' để cung cấp lời nhắc tốt đẹp về virtualenv được kích hoạt trong bash của bạn. – sagarchalise
chạy lệnh của bạn, các gói duy nhất trong virtualenv của tôi là lệnh tôi đã yêu cầu pip để cài đặt Django, tất cả các gói khác được xử lý bằng pip trong tệp yêu cầu đều bị bỏ qua. Tôi cũng bằng cách nào đó có được một dấu nhắc tốt đẹp cho biết virtualenv tôi đã kích hoạt. – leotemp