Tôi đang tạo tệp setup.py
cho một dự án phụ thuộc vào kho lưu trữ GitHub riêng tư. Các bộ phận có liên quan của các tập tin giống như thế này:Trình thiết lập Python: Làm thế nào tôi có thể liệt kê một kho lưu trữ riêng dưới install_requires?
from setuptools import setup
setup(name='my_project',
...,
install_requires=[
'public_package',
'other_public_package',
'private_repo_1',
'private_repo_2',
],
dependency_links=[
'https://github.com/my_account/private_repo_1/master/tarball/',
'https://github.com/my_account/private_repo_2/master/tarball/',
],
...,
)
Tôi đang sử dụng setuptools
thay vì distutils
vì sau này không hỗ trợ install_requires
và dependency_links
luận mỗi this câu trả lời.
Tệp thiết lập ở trên không truy cập được các bản repos riêng với lỗi 404 - được mong đợi vì GitHub trả về 404 cho các yêu cầu trái phép đối với kho lưu trữ riêng tư. Tuy nhiên, tôi không thể tìm ra cách để xác thực setuptools
.
Dưới đây là một số những điều tôi đã cố gắng:
Sử dụng
git+ssh://
thay vìhttps://
trongdependency_links
như tôi sẽ nếu cài đặt repo vớipip
. Điều này không thành công vì setuptools không nhận ra giao thức này ("loại url không xác định: git + ssh"), mặc dù số distribute documentation cho biết. Dittogit+https
vàgit+http
.https://<username>:<password>@github.com/...
- vẫn nhận được một 404. (Phương pháp này không làm việc vớicurl
hoặcwget
từ dòng lệnh hoặc -. Mặc dùcurl -u <username> <repo_url> -O <output_file_name>
làm việc)setuptools Nâng cấp (0.9.7) và virtualenv (1.10) đến phiên bản mới nhất. Cũng cố gắng cài đặt phân phối mặc dù this overview nói rằng nó đã được sáp nhập trở lại vào setuptools. Dù bằng cách nào, không có xúc xắc.
Hiện tại tôi chỉ có setup.py
in ra cảnh báo rằng bản repos riêng phải được tải xuống riêng. Điều này rõ ràng là ít hơn lý tưởng. Tôi cảm thấy như có điều gì đó hiển nhiên mà tôi đang bỏ lỡ, nhưng không thể nghĩ nó có thể là gì. :)
Câu hỏi trùng lặp-ish không có câu trả lời here.
tôi vẫn nhận được cùng một lỗi 404. Repos trong trường hợp của bạn có riêng tư không? Tôi biết cú pháp # egg = nhưng không biết rằng nó ảnh hưởng đến xác thực. –
Xin lỗi, tất nhiên là một dự án repo công cộng. Có thể không có cách nào để thực hiện việc này với các công cụ thiết lập hiện tại nếu https //: @ ... URL tarball không hoạt động với kho lưu trữ riêng tư github vì câu hỏi này dường như cũng cho biết: [have-trouble-download-git- archive-tarballs-from-private-repo] (http://stackoverflow.com/questions/10046027/having-trouble-downloading-git-archive-tarballs-from-private-repo) –
wor
Bạn cũng có thể thử phiên bản phát triển của các công cụ thiết lập và/hoặc kiểm tra mã. Mã có liên quan có vẻ là: [package_index: fetch_distribution(): 534] (https://bitbucket.org/pypa/setuptools/src/9f475ec7aedd04ccf89483d8575808d30e31ab51/setuptools/package_index.py?tại = mặc định # cl-534) [package_index.py:_download_url():736](https://bitbucket.org/pypa/setuptools/src/9f475ec7aedd04ccf89483d8575808d30e31ab51/setuptools/package_index.py?at=default#cl-736) – wor