2015-08-11 2 views
5

Ich habe ein Projekt mit mehreren Abhängigkeiten mit virtualenv und pip installiert. Ich möchte mein Projekt auf einem Server ausführen, auf dem kein pip installiert ist. Leider ist die Installation von Pip keine Option.PIP-Pakete exportieren

Gibt es eine Möglichkeit, meine benötigten Pakete zu exportieren und sie mit meinem Projekt zu bündeln? Was ist der übliche Ansatz in dieser Situation?

Antwort

5

Twitter verwendet pex Dateien, um Python-Code mit seinen Abhängigkeiten zu bündeln. Dies erzeugt eine einzelne Datei. Ein weiteres relevantes Werkzeug ist , das ebenfalls darauf abzielt, die Komplexität der Bereitstellung von Python-Code auf einen Server zu reduzieren.

Eine andere Alternative besteht darin, selbst ein Tool zu schreiben, das eine Zip-Datei mit Python und Abhängigkeiten erstellt und sie an der richtigen Stelle auf dem Server entpackt.

In Python 3.5 wurde das Modul zipapp eingeführt, um die Unterstützung für diese Art der Bereitstellung/Verwendung von Code zu verbessern. Auf diese Weise können Sie die Erstellung von Zip-Dateien mit Python-Code verwalten und sie direkt mit dem Python-Interpreter ausführen.

0

@ Simeon Vissers Antwort ist eine gute Möglichkeit, damit umzugehen. Meine ist, mein Python-Projekt mit buildout zu bauen.

0

Dies liegt möglicherweise außerhalb des Bereichs der Frage, aber wenn Sie Anwendungen auf Servern mit ihren Abhängigkeiten bereitstellen müssen, sollten Sie sich Virtualisierung und Linux-Container ansehen.

Es ist bei weitem die am häufigsten verwendete Lösung für dieses Problem, und wird mit jeder Art von Anwendung (Python oder nicht) arbeiten, und es ist leicht (die Leistung Hit von LXC ist in den meisten Fällen nicht bemerkbar und isoliert Anwendungen ist eine großartige Funktion).

Docker-Container neben jetzt modisch zu sein, sind eine sehr bequeme Möglichkeit, Anwendungen zu implementieren, ohne sich um Abhängigkeiten Pflege, etc ...

Das gleiche gilt für die Entwicklung ENVs mit Vagabund.