2012-01-09 32 views
129

Tôi tự hỏi có cách nào để nói pip, cụ thể trong tệp yêu cầu, cài đặt gói với cả phiên bản tối thiểu (pip install package>=0.2) và phiên bản tối đa không bao giờ được cài đặt (lý thuyết api: pip install package<0.3).Làm thế nào để pip cài đặt một gói với phạm vi phiên bản tối thiểu và tối đa?

Tôi hỏi vì tôi đang sử dụng thư viện của bên thứ ba đang được phát triển tích cực. Tôi muốn tập tin yêu cầu pip của tôi để xác định rằng nó luôn luôn nên cài đặt bản phát hành nhỏ nhất gần đây của nhánh 0.5.x, nhưng tôi không muốn pip thử cài đặt bất kỳ phiên bản chính nào mới hơn (như 0.6.x) kể từ API khác. Điều này rất quan trọng bởi vì mặc dù có sẵn nhánh 0.6.x, các dev vẫn đang phát hành các bản vá lỗi và các sửa lỗi cho nhánh 0.5.x, vì vậy tôi không muốn sử dụng một dòng tĩnh package=0.5.9 trong tệp yêu cầu của mình.

Có cách nào để làm điều đó không?

Trả lời

169

Bạn có thể làm:

$ pip install "package>=0.2,<0.3" 

pip sẽ tìm kiếm phù hợp nhất, giả sử các phiên bản ít nhất là 0,2, và ít hơn 0.3.

Điều này cũng áp dụng cho pip requirements files. Xem chi tiết đầy đủ về các thông số phiên bản trong PEP 440.

+0

Có phải "gói> = 0,2, <0,3" cũng hợp lệ không? –

+0

Có, nó là hợp lệ. Xem câu trả lời cập nhật của tôi và tìm thêm thông tin về những gì hợp lệ và những gì không. –

+0

Liên kết chết. Tài liệu chính thức [ở đây] (http://www.pip-installer.org/en/latest/logic.html#requirements-file-format). – tjameson

7

bạn cũng có thể sử dụng:

pip install package==0.5.* 

đó là ổn định hơn và dễ đọc.

+1

Đây là cách tốt hơn để quản lý IMO 'requirements.txt'. Sử dụng 'package == 1. *' thay vì 'package> = 1.2' ngăn pip cài đặt phiên bản chính 2+ cho gói, đó là mong muốn vì các thay đổi phiên bản chính thường không tương thích ngược. –

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