2016-02-08 38 views
2

基於Github上,包我在Github上一個Python回購與setup.pyrequirements.txt。本來,setup.py包含一些這樣的:安裝依賴與PIP

setup(
    ... 
    install_requires=[x for x in open("requirements.txt").read().splitlines() if "://" not in x], 
    dependency_links=[x for x in open("requirements.txt").read().splitlines() if "://" in x] 
) 

當我做pip install git+https://github.com/foo/[email protected]#egg=foo這個回購協議,它正確地安裝install_requires依賴關係,但忽略dependency_links額外的基於Github的依賴關係。

經過大量調查 - StackOverflow,#python和文檔(FWIW) - 有建議dependency_links已棄用,應將所有內容放入install_requires。所以,我改變我的setup.py到:

setup(
    ... 
    install_requires=open("requirements.txt").read().splitlines() 
) 

現在PIP抱怨,一旦進入到基於Github上的依賴 - 我們稱之爲quux - ,它的期待「的版本規格」。我已經試過:

...以及沒有規定,既沒有在我的requirements.txt和我保持前面-e任何版本收到此錯誤。我也嘗試了不同格式的URL方案,也沒有任何的區別。

如何格式化我的requirements.txtsetup.py以處理基於Git的依賴關係?

+1

我也嘗試過棄用的'PIP安裝--process依賴性鏈接...'與原來'setup.py':這沒有什麼區別,依然沒有安裝基於Github的依賴關係。 – Xophmeister

回答

0

我正在運行pip install --process-dependency-links ...這個setup.py文件什麼工作:

setup(
    ... 
    install_requires=[ 
     'my_lib==0.1.0', 
    ], 
    dependency_links=[ 
     'git+ssh://[email protected]/foo/[email protected]#egg=my_lib-0.1.0', 
    ] 
) 

注意,如你所說,--dependency_links已被棄用,並且將在未來的PIP的版本中刪除。在這種情況下,我不知道解決的辦法是什麼。