Ich habe ein Projekt mit mehreren Paketabhängigkeiten, wobei die Hauptanforderungen in aufgeführt sind requirements.txt
. Wenn ich pip freeze
es aufrufe, werden die aktuell installierten Pakete als einfache Liste gedruckt. Ich würde es vorziehen, auch ihre Abhängigkeitsbeziehungen zu erhalten, so etwas wie:
Flask==0.9
Jinja2==2.7
Werkzeug==0.8.3
Jinja2==2.7
Werkzeug==0.8.3
Flask-Admin==1.0.6
Flask==0.9
Jinja2==2.7
Werkzeug==0.8.3
Ziel ist es, die Abhängigkeiten der einzelnen Pakete zu ermitteln:
Werkzeug==0.8.3
Flask==0.9
Flask-Admin==1.0.6
Und füge diese in meine aktuelle ein requirements.txt
. Zum Beispiel für diese Eingabe:
Flask==0.9
Flask-Admin==1.0.6
Werkzeug==0.8.3
Ich hätte gern:
Flask==0.9
Jinja2==2.7
Flask-Admin==1.0.6
Werkzeug==0.8.3
Gibt es eine Möglichkeit, die Abhängigkeiten der installierten Pip-Pakete anzuzeigen?
python
pip
requirements.txt
tbicr
quelle
quelle
Antworten:
Sie sollten sich Folgendes ansehen
pipdeptree
:$ pip install pipdeptree $ pipdeptree -fl Warning!!! Cyclic dependencies found: ------------------------------------------------------------------------ xlwt==0.7.5 ruamel.ext.rtf==0.1.1 xlrd==0.9.3 openpyxl==2.0.4 - jdcal==1.0 pymongo==2.7.1 reportlab==3.1.8 - Pillow==2.5.1 - pip - setuptools
Es wird keine
requirements.txt
Datei generiert , wie Sie direkt angegeben haben. Die Quelle (255 Zeilen Python-Code) sollte jedoch relativ einfach an Ihre Bedürfnisse anzupassen sein. Alternativ können Sie (wie @MERose in der Pipdeptree 0.3 README angegeben) Folgendes verwenden:pipdeptree --freeze --warn silence | grep -P '^[\w0-9\-=.]+' > requirements.txt
Die 0.5-Version von
pipdeptree
ermöglicht auch die JSON-Ausgabe mit der--json
Option, die einfacher maschinell analysiert werden kann, auf Kosten einer geringeren Lesbarkeit.quelle
pipdeptree | grep -P '^\w+'
druckt eine requirements.txt.bokeh
:( Dieses Paket hat eine spezifische Organisation der Anforderungen, so dass Pip sie nicht anzeigt, aber conda.Warnung: Nur py2 / Abbruchware
yolk
kann Abhängigkeiten für Pakete anzeigen, sofern diesesetuptools
kam mit Metadaten, die Abhängigkeitsinformationen enthalten
$ yolk -d Theano Theano 0.6.0rc3 scipy>=0.7.2 numpy>=1.5.0
quelle
distutils
wurden und keine