2014-06-07 23 views
7

Tôi đã quen với việc tải xuống các gói bằng Pip, sau đó sao chép chúng sang máy mục tiêu để triển khai. Với Bánh xe Python vừa mới được giới thiệu, tôi buộc phải "pip ... --no-use-wheel", vì một số gói được tải xuống là nền tảng cụ thể (tôi đang phát triển trên OSX và triển khai lên Debian) và sẽ không cài đặt trên máy mục tiêu. Có cách nào để tải xuống Bánh xe cho nền tảng mục tiêu (hoặc nền tảng độc lập) không?Làm thế nào để tải về bánh xe đa nền tảng thông qua pip?

+0

tôi sửa tiêu đề của câu hỏi của bạn như tôi nghĩ 'chéo platform' (gợi nhớ của 'chéo compilation' giải thích tốt hơn những gì bạn đang cố gắng đạt được: tạo gói nhị phân trên nền tảng A cho nền tảng B khác (trái ngược với tiêu đề gốc đề xuất tạo gói "phổ quát" thay thế) - có thể không thực hiện được nếu gói đã biên dịch mã trong đó) – mac

Trả lời

0

Cách dễ nhất để đạt được điều đó là IMO sử dụng tập lệnh tùy chỉnh.

Bạn có thể truy cập toàn bộ chỉ mục PyPI qua giao diện simple, nếu gói quan tâm cung cấp một hoặc nhiều bánh xe, chúng sẽ được liệt kê ở cùng một địa chỉ + /<package-name>.

Ví dụ: nếu bạn đã cài đặt setuptools tất cả các bánh xe sẽ được liệt kê tại địa chỉ: https://pypi.python.org/simple/setuptools/

Trong kịch bản của bạn, hãy nhớ để thực hiện các ưu tiên thẻ đề nghị theo quy định của PEP-425. Về cơ bản, hãy tải xuống phiên bản cụ thể (như trái ngược với phiên bản chung nhất) của gói vì điều này thường chuyển thành các lợi thế về hiệu suất, ví dụ như phần mở rộng C thay thế việc triển khai python tinh khiết của một số thuật toán.

2

Lệnh pip download bây giờ có --platform tranh luận, mà bạn có thể sử dụng để xác định nền tảng mong muốn:

pip download --platform=manylinux1_x86_64 --only-binary=:all: lxml 
+0

Tại sao không có phân phối phù hợp cho một số gói? Chẳng hạn như 'pip download --only-binary =: all: --platform = manylinux1_x86_64 tornado' . Làm cách nào để tải xuống các gói đó? –

+0

@SiminJie không phải tất cả các gói đều có tất cả các bản phân phối có sẵn dưới dạng bánh xe, nhưng tôi chắc chắn rằng người duy trì gói sẽ chấp nhận một đóng góp để giải quyết ;-) – sitaktif

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