Wird virtualenv für den django production server empfohlen?
Habe ich immer mit virtualenv für das testen meiner app auf localhost, da ich isolierte Umgebung und können gefahrlos testen neue release-Pakete.
Nun Es kommt die Zeit, wenn ich für die Bereitstellung der app zu einem Produktions-server. Ich Frage mich, ob ich auch sollte virtualenv für die Produktion-server oder einfach nur eine normale installation tun sollte. Da es Produktions-server kann ich verwenden Sie immer die korrekte version, die ich getestet habe in der dev-server (virtual-env)
InformationsquelleAutor der Frage w00d | 2012-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde es genau so machen, wenn Sie jemals denken, dass man mehr als ein Projekt auf dem webserver. Sobald Sie haben zwei Projekte, laufen Sie Gefahr, von einem zukünftigen upgrade von python-Paket brechen die andere Seite.
InformationsquelleAutor der Antwort Kurt
Ja, es macht Ihr Projekt nicht davon ab, sich auf bestimmte Aspekte der system-Umgebung und ermöglicht es Ihnen, um den deployment-Prozess mehr klar und konfigurierbar.
Ich benutze Stoff, pip und virtualenv zum bereitstellen von all meinen Django-Projekten.
InformationsquelleAutor der Antwort Gregory Petukhov
Ja, ich glaube, Sie sollten virtualenv zu implementieren es in die Produktion. Es macht die Dinge viel einfacher und sauberer für Sie, besonders wenn Sie planen auf die Bereitstellung mehrerer Dienste, z.B. django-basierte Website oder anderen python-Projekten. Sie nicht möchten, dass jeder von Ihnen sein, von der Verschmutzung der globalen python Umgebung mit Ihren Paketen.
Ich denke virtualenv wird Ihnen helfen, verwalten Sie alle Ihre Abhängigkeiten sauber.
Update Ihrer Produktion env alles, was Sie tun müssen, ist:
Benutze ich virtualenvs in der Produktion, die Sie verwenden können, uWSGI, dienen die Anwendungen, mit Cherokee als web-server.
Verwenden Ihre virtualenv in der Produktion, müssen Sie den Pfad zu deinem PYTHONPATH.
Wenn Sie zum Beispiel das env hat den Pfad "/home/www/my_project/env/", der Pfad zum hinzufügen wäre:
Man kann dies auf viele verschiedene Arten, aber wenn Sie erstellen Sie Ihre FCGI oder uWSGI-Schnittstelle durch manage.py fügen Sie einfach die folgenden an der Spitze Ihres manage.py (vor dem rest):
Passen Sie diese an Ihre Einrichtung, nur für den Fall, Sie könnte auch tun Sie Folgendes in der shell:
Müssen Sie auch fügen Sie das Verzeichnis mit Ihren settings.py Datei auf den PYTHONPATH, also Django wird in der Lage sein, es zu entdecken. Gehen Sie einfach in einer ähnlichen Art und Weise, dies zu tun.
InformationsquelleAutor der Antwort AaronO
In den meisten Fällen würde ich Zustimmen, es ist am besten, um ein virtualenv, auch wenn es scheint nicht, wie Sie es brauchen, wenn Sie zuerst den server einrichten. Das sagte, wenn Sie mit irgendeiner Art von cloud-service-und spinning-up-Server für eine bestimmte Aufgabe für eine kurze Zeit, dann sehe ich nicht den Punkt mit einem virtualenv.
InformationsquelleAutor der Antwort Max Peterson
Ich denke, es ist ein gutes Indiz dafür, dass seine eine vollständig unterstützte Produktion-Lösung, wenn uwsgi direkt unterstützt es mit der vhost-flag: http://projects.unbit.it/uwsgi/wiki/VirtualHosting
InformationsquelleAutor der Antwort jdi
Mithilfe von Docker-Containern für die Entwicklung und Produktion Bereitstellung ist ziemlich beliebt, jetzt, also, wenn Sie erwägen, diesem trend folgend, werden Sie nicht brauchen, virtualenv mehr.
InformationsquelleAutor der Antwort Dmitrii Mikhailov