簡體   English   中英

pip install軟件包仍未遵循依賴關系鏈接

[英]pip install package still not following dependency links

我在使用setup.py pip安裝我的軟件包時遇到了麻煩,該軟件包也具有依賴項鏈接。 我已經仔細閱讀了這個答案這個答案,所有答案(包括已接受的答案)都沒有幫助。

這是嘗試安裝的軟件包的setup.py 基本上,它會讀取requirements.txt來填充install_requires和dependency_links,其余大部分代碼都是cookie-cutter的樣板。 requirements.txt中有一個私人的github存儲庫,這是導致問題的原因。 例如git+https://${GITHUB_OAUTH_TOKEN}@github.com/jmerkow/pripy.git#egg=pripy

當我運行pip install -r requirements.txt一切正常,它將安裝專用存儲庫。 但是,如果我嘗試使用pip install . --process-dependency-links pip install . --process-dependency-links ,出現此錯誤:

Could not find a version that satisfies the requirement pripy (from mypackage==<sha>) (from versions: )
No matching distribution found for pripy (from mypackage==<sha>)

如果我從需求中的鏈接中pip install . #egg=xxx ,則pip install .會完全忽略私有repo軟件包pip install . 但是不是pip install -r requirements.txt

我已經確認dependency_links包含'git+https://<actual-token>@github.com/jmerkow/pripy.git#egg=pripy' ,並且install_requires包含'pripy'

如何正確設置安裝程序這是子軟件包的問題嗎? 除了沒有私有鏈接外,該存儲庫中的setup.py幾乎相同。

gh,這總是發生。 我把所有工作都放在了問題上,然后我自己弄清楚了。

問題有兩點,首先,所有dependeny_links需要一個版本,其次要從需求文件中正確提取版本,您需要對字符串做一些魔術。

與上面的setup.py相比,我更改了將需求添加到兩個列表( 在此處更新)的方式。 然后將版本添加到鏈接上的git+https://${GITHUB_OAUTH_TOKEN}@github.com/jmerkow/pripy.git#egg=pripy-0 #egg=xxx ,例如git+https://${GITHUB_OAUTH_TOKEN}@github.com/jmerkow/pripy.git#egg=pripy-0

現在setup.py將解析該文件,獲取egg版本信息,將其轉換為pip版本(基本上將第一個'-'替換為'==' )以進行install_requires,您可以開始使用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM