首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不安装的情况下列出python库的依赖项?

如何在不安装的情况下列出python库的依赖项?
EN

Stack Overflow用户
提问于 2017-01-24 06:17:53
回答 3查看 10.5K关注 0票数 27

有没有一种方法可以在不安装python包的情况下获得它的依赖列表?

我目前可以获得一个需求列表,但它需要安装软件包。例如,我可以使用pip显示基本需求信息,但它不包括版本信息:

代码语言:javascript
复制
$ pip show pytest
Name: pytest
Version: 3.0.6
...
Requires: colorama, setuptools, py

我尝试过一个名为pipdeptree的库,它包含了更好的需求输出,但它也需要安装包

代码语言:javascript
复制
$ 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是必需的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-19 19:49:53

PyPi为JSON端点提供了包元数据:

代码语言:javascript
复制
>>> 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中添加额外的版本段:

代码语言:javascript
复制
https://pypi.org/pypi/pandas/0.22.0/json
票数 13
EN

Stack Overflow用户

发布于 2017-12-06 10:56:13

如果你不介意安装conda,这可能会帮你解决这个问题:

代码语言:javascript
复制
$ conda info numpy=1.11.1 python=3.6.3 

包的版本号或python的版本号是可选的(所有版本将在随后描述)

票数 3
EN

Stack Overflow用户

发布于 2018-07-26 07:02:28

实际上,conda为您提供了两个选项:

代码语言:javascript
复制
conda info {package}
conda install --dry-run {package}

我听说如果你提供其他标志,后者有时会安装包,所以我会使用前者。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41816693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档