2015-07-03 3 views
11

Ich mag würde auf diese Weise für ein kleines Python-Projekt verwenden für die Verwaltung abhängige Module: http://blog.zoomeranalytics.com/pip-install-t/Pip freeze für installierte Pakete mit --target

Kurz gesagt, ich tun würde:

cd myproject

pip install --target ./pip-libs --upgrade -r requirements.txt

Dann fügen Sie ./pip-libs zu PYTHONPATH hinzu und führen Sie mein Skript aus.

Dies scheint aber Ich mag die Verwendung pip Einfrieren verwenden und es erlaubt mir nicht, wie etwas zu tun

pip freeze --target pip-libs

im Ordner installierten Pakete zu sehen. Natürlich kann ich einen Blick hinein werfen, aber was ist ein Standard Weg, um Pakete zu zeigen, die in einem Ordner mit --target installiert sind? Der einzige Weg, an den ich denken kann, ist ls von Pip-libs und dann spielen mit Grep, Awk ... Scheint nicht richtig.

Ich bin nicht sicher, ob es einen Weg gibt, vielleicht ist es keine gute Idee, oder ich sollte solche Funktionalität für Pip anfordern.

Python 2.7.9.

Antwort

0

Leider können Sie es nicht mit pip freeze tun. Die Dokumentation besagt, dass pip install in diesem Zielordner installiert wird, aber immer noch in Ihrem Pfad. So zeigt pip freeze nur, welche Pakete installiert sind, nicht, was an einem bestimmten Ort installiert sind.

Sie bei pip show aussehen könnte, die Informationen enthält, auf wo sie installiert sind (siehe https://pip.pypa.io/en/stable/reference/pip_show/), aber sie würde einige sed/awk oder ähnliches haben, schreiben einen grep auf der Linie „Location“ zu tun, und dann gehen Sie zurück und den Paketnamen erhalten.

Die andere Option ist in den Ordnern suchen gerade in den Ordner installieren und manuell herausfinden, was die Pakete in dem von diesem ... so etwas wie:

ls ./pip-libs | grep -v .dist-info