当我冻结一个点子时,会看到大量未明确安装的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显示为树状结构,例如:
$ pipdeptree
Lookupy==0.1
wsgiref==0.1.2
argparse==1.2.1
psycopg2==2.5.2
Flask-Script==0.6.6
- Flask [installed: 0.10.1]
- Werkzeug [required: >=0.7, installed: 0.9.4]
- Jinja2 [required: >=2.4, installed: 2.7.2]
- MarkupSafe [installed: 0.18]
- itsdangerous [required: >=0.21, installed: 0.23]
alembic==0.6.2
- SQLAlchemy [required: >=0.7.3, installed: 0.9.1]
- Mako [installed: 0.9.1]
- MarkupSafe [required: >=0.9.2, installed: 0.18]
ipython==2.0.0
slugify==0.0.1
redis==2.9.1
要使其运行:
pip install pipdeptree
编辑:正如@Esteban在评论中指出的那样,您还可以反向列出树,-r
或者使用单个软件包列出,-p <package_name>
以便找到可以运行的已安装Werkzeug:
$ pipdeptree -r -p Werkzeug
Werkzeug==0.11.15
- Flask==0.12 [requires: Werkzeug>=0.7]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句