有没有一种方法可以在不安装python包的情况下获得它的依赖列表?
我目前可以获得一个需求列表,但它需要安装软件包。例如,我可以使用pip显示基本需求信息,但它不包括版本信息:
$ 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
或使用pip
从pypi生成requirements.txt
文件也就足够了。
我感兴趣的是给定包的依赖约束,而不是解决依赖要求后最终下载的包。例如,我并不关心pip是否下载了package-2.3.4
,我宁愿知道package>=2.1
是必需的。
发布于 2018-05-19 19:49:53
PyPi为JSON端点提供了包元数据:
>>> import requests
>>> url = 'https://pypi.org/pypi/{}/json'
>>> json = requests.get(url.format('pandas')).json()
>>> json['info']['requires_dist']
['numpy (>=1.9.0)', 'pytz (>=2011k)', 'python-dateutil (>=2.5.0)']
>>> json['info']['requires_python']
'>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*'
对于特定的包版本,在URL中添加额外的版本段:
https://pypi.org/pypi/pandas/0.22.0/json
发布于 2017-12-06 10:56:13
如果你不介意安装conda,这可能会帮你解决这个问题:
$ conda info numpy=1.11.1 python=3.6.3
包的版本号或python的版本号是可选的(所有版本将在随后描述)
发布于 2018-07-26 07:02:28
实际上,conda
为您提供了两个选项:
conda info {package}
conda install --dry-run {package}
我听说如果你提供其他标志,后者有时会安装包,所以我会使用前者。
https://stackoverflow.com/questions/41816693
复制相似问题