当我执行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.)
有没有办法让我确定pip为什么安装这些特定的依赖包?换句话说,如何确定将这些包作为依赖项的父包?
例如,我可能想使用Twisted,我不想依赖于一个包,直到我知道更多关于不意外卸载或升级它的信息。
您可以尝试pipdeptree将依赖项显示为树结构,例如:
要运行它:
编辑:正如@Esteban在注释中所指出的,您还可以使用
-r
反向列出树,或者使用-p <package_name>
列出单个包的树,以便查找已安装的Werkzeug,您可以运行:pip show
命令将显示指定包所需的包(注意,必须已安装指定包):在pip版本1.4rc5中引入了
pip show
正如我最近在一篇hn thread文章中所说,我将推荐以下内容:
有一个带有注释的
requirements.txt
文件,其中包含您的主要依赖项:安装依赖项:
pip install -r requirements.txt
。 现在您可以使用pip freeze -r requirements.txt
获得依赖项的完整列表:这允许您保留带有注释的文件结构,很好地将依赖项与依赖项的依赖项分离开来。这样,你就有了一个更好的时间,一天,你需要删除其中一个:)
注意以下几点:
requirements.raw
来重新生成完整的requirements.txt
。pip install --no-install <package_name>
列出特定需求。相关问题 更多 >
编程相关推荐