Pip + WSGI Importfehler
-
18-09-2019 - |
Frage
, wenn ich meine Apps bereitstellen, die feine den django Testserver arbeitete ich mit in der Regel Fehler erhalten für jedes Paket, das ich -e pip installieren installiert verwenden .... # Ei = foo. Ich in der Regel tun dies mit virtualenv, die die Dateien in env / src / foo platziert und stellt eine andere Datei in Python / site-packages (dies ist ein Beispiel für django-css):
django-css.egg-Link, das die folgenden Zeilen enthält:
/home/pinax-0.7.1/src/django-css
.
, wie ich wsgi Sie sagen, dass es diesen Links folgen sollte, oder mache ich etwas falsch zusammen.
Danke, Philipp Wassibauer
Lösung
Dies ist, was mein WSGI Skript für Django in einem virtualenv wie folgt aussieht:
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
import site
site.addsitedir('/path/to/virtualenv/lib/python2.6/site-packages')
from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()
Der Schlüssel Bit ist site.addsitedir(...)
, die die Inhalte der *.pth
Dateien im angegebenen Verzeichnis sys.path
hinzufügt. In diesem Fall ist es die easy-install.pth
Datei, die Python Hilfe beim Suchen muss.
Andere Tipps
Die modwsgi Dokumentation hat Hinweise auf wie virtualenv verwenden. Es ist in der Regel so einfach wie Ihre django.wsgi
Modifizieren (oder was auch immer Sie es nennen) Datei so, dass sie die virtualenv Umgebung fügt Weg zur modwsgi.
diesen Link hat einige zusätzliche, destilliert, Hinweise auf pip / virtualenv / modwsgi verwendet wird.