我想获得一个Python模块列表,这些模块在我的Python安装(UNIX服务器)中.
如何获得计算机中安装的Python模块列表?
当我执行pip冻结时,我看到了大量的Python包,我没有明确安装,例如
$ pip freeze
Cheetah==2.4.3
GnuPGInterface==0.3.2
Landscape-Client==11.01
M2Crypto==0.20.1
PAM==0.4.2
PIL==1.1.7
PyYAML==3.09
Twisted-Core==10.2.0
Twisted-Web==10.2.0
(etc.)
Run Code Online (Sandbox Code Playgroud)
有没有办法让我确定为什么pip安装了这些特定的依赖包?换句话说,如何确定将这些包作为依赖项的父包?
例如,我可能想要使用Twisted,我不想依赖于包,直到我知道更多关于不小心卸载或升级它.
有没有办法获得给定python包的依赖项列表而不先安装它?
我目前可以获得要求列表,但它需要安装包.例如,我可以使用pip来显示基本需求信息,但它不包含版本信息:
$ pip show pytest
Name: pytest
Version: 3.0.6
...
Requires: colorama, setuptools, py
Run Code Online (Sandbox Code Playgroud)
我已经尝试过一个名为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]
...
Run Code Online (Sandbox Code Playgroud)
理想情况下,我会得到pipdeptree提供的详细程度.此外,能够requirements.txt从python wheel或pypi 生成文件pip也足够了.
编辑:
我看过类似的问题.它们要么过时,需要安装,要么它们不列出给定包的单个依赖项,只列出解决依赖性要求后最终下载的包的列表.例如,我并不关心pip下载package-2.3.4,我宁愿知道这package>=2.1是一个要求.