2013-07-18 5 views
9

Mein Produktionsserver hat keinen Zugriff auf das Internet, daher ist es ein bisschen schwierig, alle Abhängigkeiten von meinem Dev-Rechner auf den Produktions-/Entwicklungsserver zu kopieren.Python-Deployment mit virtualenv (auf einem No-Internet-Access-Server)

Wenn ich virtualenv verwenden würde, hätte ich alle meine Abhängigkeiten in dieser Umgebung. Dadurch wäre ich auch in der Lage, es auf jedem Rechner zu installieren, der python & virtualenv installiert hat.

Aber ich habe das selten gesehen, und es scheint irgendwie schmutzig. Bin ich falsch, und das könnte eine gute Praxis sein, oder gibt es andere Möglichkeiten, das gut zu lösen?

+0

'virtualenv' erlaubt Ihnen nicht, Abhängigkeiten zu anderen Maschinen zu implementieren. Sie können stattdessen "Fabric" (http://fabfile.org) oder ein "bash" -Skript verwenden. 'virtualenv' ist ideal um Ihre Entwicklungsumgebung zu isolieren, z. passend zu Ihren Produktionsumgebungen. – furins

+0

Sie können versuchen, die Bootstrap-Funktion, die virtualenv zu bieten hat, hier zu sehen für ein Beispiel https://github.com/socialplanning/fassembler/blob/master/fassembler/create-venv-script.py – woozyking

Antwort

5

Drei Optionen, die ich in Betracht ziehen würden:

  1. Führen Sie Ihren eigenen PyPI mirror mit den Abhängigkeiten, die Sie benötigen. Sie müssen wirklich nur die Datei-Layout erstellen und von Ihrem lokalen Server mit der index-url Flagge ziehen:

    $ pip install --index-url http://pypi.beastcraft.net/ numpy

  2. Build-virtualenvs auf der gleichen Architektur und diejenigen, kopieren Sie je nach Bedarf.

    Das funktioniert, aber Sie riskieren echte Portabilität.

  3. Verwenden terrarium in virtuelle Umgebungen baut dann die über bringen (im Grunde Option 2, aber mit einfacher Buchhaltung/Automatisierung).

Ich habe alle diese getan und denke eigentlich, dass Sie Ihre eigenen PyPI Spiegel-Hosting ist die beste Option. Es bietet Ihnen die größte Flexibilität, wenn Sie eine Bereitstellung durchführen oder neuen Code ausprobieren.

+0

Es gibt eine Unterseite von hosten Sie Ihren eigenen Spiegel im Vergleich zu den beiden anderen Optionen. Wenn Sie widersprüchliche/Share-Abhängigkeiten haben, die Sie in derselben Box hosten müssen, benötigen Sie/wollen eine Art von virtueller Umgebung. – cmd

Verwandte Themen