2010-02-23 48 views
14

Tôi có tập lệnh tạo virtualenv, cài đặt distributepip trong đó và sau đó tùy chọn sao chép một repo git.PIP: Chỉ cài đặt các phụ thuộc

Bây giờ tôi có dự án tôi sẽ làm việc, được cài đặt. Nhưng phụ thuộc của nó không được cài đặt. Làm thế nào tôi có thể thực hiện pip cài đặt tất cả các phụ thuộc như thể tôi đã phát hành một pip install MyApp?

EDIT: Rõ ràng câu hỏi của tôi trùng lặp với this one.

Không chắc chắn chính xác nhưng pip install -e . dường như làm những gì tôi muốn mà không có quá nhiều nội dung bổ sung nằm xung quanh. Tôi thích nếu mã của tôi không được liên kết từ site-packages.

+3

* Tôi có tập lệnh tạo virtualenv, cài đặt phân phối và pip trong đó (...) *. Bạn biết bạn có thể làm tất cả 3 thứ với pip pip -E VENV_DIR 'pip bằng pip cài đặt mặc định và phân phối trong môi trường mới được tạo ra? –

+0

Mẹo hay! Tôi không sử dụng kịch bản được đề cập nữa. – muhuk

Trả lời

16

Trong gói gốc của tôi phát hành pip install -e . cài đặt các phụ thuộc.

+0

Đó là một số tác dụng phụ khá nghiêm trọng. '-e' cài đặt ở chế độ có thể chỉnh sửa, có nghĩa là gói được liên kết từ các gói trang web thay vì sao chép. Tôi mong đợi cách tiếp cận này gây ra các vấn đề kỳ lạ và tinh tế khi bạn đi và cố gắng cài đặt gói cho thực tế, đặc biệt là nếu bạn không 'pip uninstall' nó đầu tiên. –

9

Bạn nên sử dụng tệp yêu cầu pip.

Về cơ bản, đặt tất cả các yêu cầu của bạn, một ở mỗi dòng trong một tập tin và vượt qua đó để pip sử dụng lệnh

pip install -r requirements.txt 

Hơn thế nữa, nếu bạn có một môi trường tiêu chuẩn, pip có thể thực sự đổ một tập tin như vậy từ cài đặt hiện có bằng cách sử dụng lệnh:

pip freeze 

bạn có thể đặt các tập tin như vậy được tạo ra trực tiếp vào các yêu cầu pip, và gọi lệnh trước đó từ kịch bản triển khai của bạn.

Khá tuyệt, phải không? :)

+8

Thật tuyệt, nhưng nó không trả lời được câu hỏi của tôi. Tôi không tìm cách xác định sự phụ thuộc. Đọc câu hỏi hoàn toàn và cẩn thận giúp đi một chặng đường dài trong việc cung cấp câu trả lời đúng. – muhuk

+6

Chờ, Bạn có thể đặt tất cả các phụ thuộc của bạn vào một tập tin và yêu cầu pip cài đặt tất cả cho bạn. Đó không phải là những gì bạn đang tìm kiếm? Nếu không, tôi đã không hiểu đúng câu hỏi của bạn. Ngay cả bây giờ. –

+1

sự khác biệt là nơi 'phụ thuộc' được chỉ định - trong requirements.txt (nơi bạn sẽ chỉ định "myrepo == 1.0.1" hoặc bất kỳ thứ gì) HOẶC trong setup.py của gói trong myrepo mà bạn muốn cài đặt. nếu bạn đã có repo trong tay thì chỉ cài đặt các phụ thuộc có thể có ý nghĩa. – andy

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