2017-03-22 2 views
0

Ich versuche zu verstehen, wie die virtuelle Umgebung aufgerufen wird. Die Website, die ich verwalten soll, hat ein .venv-Verzeichnis. Wenn ich auf die Seite ssh gehe, um daran zu arbeiten, muss ich sie mit der Quelle .venv/bin/activate aufrufen. Meine Frage ist: Wie ruft die Webanwendung die virtuelle Umgebung auf? Woher weiß ich, dass es den .venv verwendet, nicht den globalen Python?Wie startet eine Django-App virtualv?

Mehr Details: Es ist eine Drupal-Website mit Django Art von glommed auf sie. Apache ist der Hauptserver. Ich glaube, der Django wird von Gunicorn serviert. Der Designer verließ Stadt _

+1

Es hängt davon ab, aber die App kann ihre eigene Umgebung nicht starten. Hast du mit jemandem gesprochen, der die Seite eingerichtet hat? Worauf läuft es? – jonrsharpe

+0

Es ist am wahrscheinlichsten in Ihrer Webserver-Konfiguration. Welchen benutzen Sie? –

+0

Ich sehe nichts in der gconf.py-Datei, die die Gunicorn-Einstellungen ist (denke ich). Der Apache startet zuerst, da er die Hauptdrupal-Seite antreibt und ich sehe nichts in Apache2.conf. Mir ist gerade aufgefallen, dass, wenn das .venv dort hingelegt wurde, es irgendwie aufgerufen werden muss. –

Antwort

0

Nur absoluten Pfad verwenden, wenn Python in virtualenv aufrufen.
Zum Beispiel Ihre virtualenv in /var/webapps/yoursite/env
Sie es /var/webapps/yoursite/env/bin/python

0

Okay, so befindet sich anrufen muss, habe ich festgestellt, wie in meinem Fall wurde die virtualenv für die django aufgerufen wird.

BASE_DIR/run/gunicorn Skript hat:

#GUNICORN='/usr/bin/gunicorn' 
GUNICORN=".venv/bin/gunicorn" 
GUNICORN_CONF="$BASE_DIR/run/gconf.py" 
..... 
$GUNICORN --config $GUNICORN_CONF --daemon --pid $PIDFILE $MODULE 

Also das uns in die .venv nimmt, wo das gunicorn Skript mit beginnt:

#!/media/disk/www/aavso_apps/.venv/bin/python 

Voila

Verwandte Themen