2017-01-23 150 views
11

有沒有辦法讓一個給定的python包的依賴項列表,而不先安裝它?如何在不安裝的情況下列出python庫的依賴關係?

我目前可以獲得需求列表,但需要安裝軟件包。例如,我可以使用畫中畫顯示基本要求的信息,但它不包括版本信息:

$ pip show pytest 
Name: pytest 
Version: 3.0.6 
... 
Requires: colorama, setuptools, py 

我已經嘗試了庫調用pipdeptree,其中包括對要求更好的輸出,但它也需要安裝的包

$ pipdeptree -p pytest 
pytest==3.0.6 
- colorama [required: Any, installed: 0.3.7] 
- py [required: >=1.4.29, installed: 1.4.32] 
- setuptools [required: Any, installed: 34.0.0] 
    - appdirs [required: >=1.4.0, installed: 1.4.0] 
... 

理想情況下,我會得到pipdeptree提供的詳細程度。另外,能夠從python wheel或pypi與pip生成requirements.txt文件也足夠了。

編輯:

我已經看了similar問題。它們或者過時,需要安裝,或者它們沒有列出單個的依賴關係對於給定的包,只有在解析依賴性需求之後的最終下載的包的列表。例如,我並不在意那個點子下載package-2.3.4,我寧願知道package>=2.1是一個要求。

+0

我不知道你爲什麼得到-1!無論如何,假設你使用pip來安裝matplotlib。據推測,pip可以驗證它具有使matplotlib成功運行所需的庫版本。如果你想問,那麼它是否更有可能給你一個答案,pip如何知道爲任何給定的庫安裝哪個版本的需求? –

+0

@BillBell對這個問題的回答會給我一部分解決方案。目前在python中指定需求有些分解。對於車輪,我可以查看'METADATA'文件並解析出'Requires-Dist'部分。對於傳統的'tar.gz'源代碼發行版,它不太清楚。我要麼必須解析'requirements.txt'文件,要麼嘗試解析'setup.py'文件。但是'pip'和其他庫已經可以做到這一點,所以如果我可以重複使用他們正在使用的任何邏輯來獲取信息,那將是非常好的。 –

+1

[有沒有辦法列出pip依賴/需求?](http://stackoverflow.com/questions/11147667/is-there-a-way-to-list-pip-dependencies-requirements) –

回答

0

如果你不介意安裝暢達,這可能會爲你做的伎倆:

$ conda info numpy=1.11.1 python=3.6.3 

包的版本號或Python是可選的(當時所有版本進行說明)

相關問題