2012-03-30 13 views
9

Thay vì đẩy bản phát hành vào PyPi và GitHub, sẽ dễ dàng hơn khi có PyPi sử dụng trình chủ GitHub mới nhất. Có cách nào thích hợp để làm điều này không?Cách cấu hình setup.py để cài đặt pip từ GitHub chính?

Tôi biết bạn có thể liệt kê các phụ thuộc là GitHub repos trong install_requires, nhưng có cách nào để thực hiện việc này cho gói chính không?

Ví dụ, khi bạn sử dụng để cài đặt easy_install Flask, nó đọc từ nhiều nguồn khác nhau, bao gồm GitHub, được liệt kê trong URL setup (https://github.com/mitsuhiko/flask/blob/master/setup.py#L78):

$ sudo easy_install Flask 
Searching for Flask 
Reading http://pypi.python.org/simple/Flask/ 
Reading http://github.com/mitsuhiko/flask/ 

Được liệt kê các URL trong setup.py nguyên nhân gây ra easy_install để đọc từ GitHub?

Nếu vậy, nó sẽ luôn luôn cài đặt từ GitHub nếu phiên bản GitHub là hiện tại hơn phiên bản PyPi?

Và điều này có hoạt động tương tự với pip không?

Trả lời

9

Nếu tôi nhớ chính xác, bạn có thể sử dụng download_url để trỏ đến tarball mới nhất tại GitHub.

Đừng gửi bất kỳ sdist/bdist để PyPI, chỉ đăng ký gói và thay đổi setup.py một cái gì đó như:

setup(..., 
     download_url='https://github.com/USER/PROJECT/tarball/master') 

Lý do các trang được đọc là vì setuptools bóc tách nhiều trang (bắt đầu từ http://pypi.python.org/simple/) tìm kiếm bất kỳ url tải xuống nào trông giống như nhu cầu cài đặt. Bạn có thể xem thêm chi tiết nếu bạn sử dụng tùy chọn -v trong easy_install/pip.

pip install -vvv flask 



Tài liệu tham khảo: