我創建一個setup.py
文件依賴於私人的GitHub庫的項目。該文件的相關部分是這樣的:的Python的setuptools:如何列出下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/',
],
...,
)
我使用setuptools
代替distutils
,因爲後者不按this回答支持install_requires
和dependency_links
參數。
上面的設置文件失敗,出現404錯誤訪問私人回購協議 - 這是可以預料的,因爲GitHub的返回404,爲私人倉庫未授權的請求。但是,我不知道如何使setuptools
進行身份驗證。
這裏有一些事情我已經試過:
使用
git+ssh://
而不是在dependency_links
https://
因爲我想如果有pip
安裝回購。失敗的原因是setuptools的不承認此協議(「未知的URL類型:混帳+ SSH」),雖然distribute documentation認爲它應該。同上git+https
和git+http
。https://<username>:<password>@github.com/...
- 仍然獲得了404(此方法不使用命令行curl
或wget
工作,要麼 - 儘管curl -u <username> <repo_url> -O <output_file_name>
不工作)升級setuptools的(0.9.7)和的virtualenv( 1.10)到最新版本。也試過安裝發行,雖然this overview說它被合併回setuptools。無論哪種方式,沒有骰子。
目前我只是setup.py
打印出一個警告,私人回購協議必須單獨下載。這顯然不夠理想。我覺得有些事情顯而易見,但我想不出它會是什麼。 :)
沒有答案的重複問題here。
指定我仍然得到同樣的404錯誤。您的案例中的回購是私人的嗎?我知道#egg =語法,但不知道它會影響身份驗證。 –
對不起,這當然是一個公共回購項目。如果https //: @ ... tarball URL不能用於githubs私有存儲庫,因爲這個問題似乎也表明:[having-trouble-downloading-git- archive-tarballs-from-private-repo](http://stackoverflow.com/questions/10046027/having-trouble-downloading-git-archive-tarballs-from-private-repo) –
wor
你也可以嘗試開發版本的setuptools和/或檢查代碼。 相關的代碼似乎是: [package_index:fetch_distribution():534](https://bitbucket.org/pypa/setuptools/src/9f475ec7aedd04ccf89483d8575808d30e31ab51/setuptools/package_index.py?at = default#cl-534) [package_index.py:_download_url():736](https://bitbucket.org/pypa/setuptools/src/9f475ec7aedd04ccf89483d8575808d30e31ab51/setuptools/package_index.py?at=default#cl-736 ) – wor