2015-02-09 16 views
6

PyPI có thể không đáng tin cậy. Tôi đã có một số không may của Travis-CI xây dựng thất bại vì pip không cài đặt một trong những yêu cầu của tôi (lxml là kẻ phạm tội khét tiếng nhất).Thay thế Canonical cho --use-mirrors

tài nguyên trực tuyến khác nhau đề nghị --use-mirrors cờ, mà đã giải quyết vấn đề này đối với tôi vậy, đến nay. Tuy nhiên, --use-mirrorsdeprecated vì một số lý do chính đáng.

Thật không may, như đã đề cập trong liên kết, một trong những lý do chính cho việc loại bỏ các lá cờ là CDN mới ủng hộ PyPI không nên có những vấn đề tương tự. Nó có. Tôi vẫn gặp sự cố với các bản dựng của mình và tôi vẫn không thể cài đặt gói một cách đáng tin cậy bằng pip trừ khi tôi sử dụng --use-mirrors.

Các release notes cho phát hành 1,5 trên 2014/01/01 khuyên bạn sử dụng một trong những lá cờ -i, -index-url, hoặc --extra-index-url. Đó là rất tốt, ngoại trừ ... Chúng tôi chạy vào một số vấn đề tương tự mà --use-mirrors đã có, cụ thể là những gương không nhất thiết phải được tin cậy.

PyPI mirrors list thực sự đã bị xóa, để lại cho chúng tôi một số unofficial mirrors. Vì vậy, tôi còn lại với một sự lựa chọn: tiếp tục sử dụng --use-mirrors và hy vọng rằng một trong những vấn đề trên được khắc phục trước khi bị xóa hoặc chọn một tấm gương và hy vọng nó hoạt động và đáng tin cậy.

Có một tấm gương chấp nhận rộng rãi và đáng tin cậy? Hoặc một sự lựa chọn được chấp nhận rộng rãi và đáng tin cậy? Về cơ bản, tôi nên xử lý vấn đề này như thế nào?

+1

Lưu ý rằng travis hỗ trợ [caching] (http://docs.travis-ci.com/user/caching/) nếu bạn có thể sử dụng cơ sở hạ tầng dựa trên vùng chứa. – o11c

Trả lời

2

Thẳng thắn mà nói, tôi chưa bao giờ phải đối mặt với vấn đề mà bạn đang mô tả - vì vậy tôi không biết phải làm gì để giải quyết vấn đề với chỉ số pypi công cộng.

Tuy nhiên, như một bác sĩ đa khoa; Tôi có thể giới thiệu sau đó là những gì chúng tôi sử dụng khi triển khai (như các hệ thống chúng tôi triển khai để làm không có quyền truy cập vào Internet):

  1. Tạo một gương pypi địa phương, và công bố gói bạn ở đó. Bạn có thể làm điều này bằng nhiều cách. Cách tiếp cận đơn giản với basket hoặc bạn có thể làm những gì chúng tôi đã làm và tạo gương pypi của riêng bạn (xem: How to roll my own pypi? cho một số đề xuất).

  2. Sử dụng wheel. Đây là những gì chúng tôi đang di chuyển đến vì quá trình cài đặt là siêu đơn giản và không đòi hỏi sự phụ thuộc vào các máy chủ khác.

Tôi biết có một chỉ số pypi toàn cầu là một tiện ích tuyệt vời nhưng như một phần của việc triển khai xây dựng chuỗi Tôi sẽ sử dụng nó như là một bản sao lưu; đối với một trong đó là trên một mạng tôi không kiểm soát (do đó nó có thể không thể truy cập hoặc không đáng tin cậy); và quan trọng hơn là hệ thống của tôi có thể không cần truy cập Internet trong quá trình xây dựng.