2017-10-23 2 views
0

Ich bin ein Django-Projekt mit httpd auf RHEL7 bereitstellen. Und änderte die Systemstandard-Python-Version zu Python 3.4. Aber nachdem ich das httpd neu gestartet habe, benutzte es immer noch Python 2.7.httpd und mod_wsgi lief mit falscher Python-Version

Ich suchte viel und es ist vor allem, weil mod_wsgi wurde unter der falschen Python-Version gebaut. Ich habe jedoch überprüft, dass mod_wsgi unter Python 3.4 installiert wurde.

Darf ich wissen, wie man es unter der korrekten Python-Version laufen lässt? Nicht sicher, ob httpd eine Standard-Python-Version hat. Vielen Dank für Ihre Hilfe!

Error Stack trace: No module named embed

+0

Verwenden Sie virtualenv? –

+0

Nein, ich habe nicht virtualenv verwendet, da ich nur python3.4 für diesen Server verwenden werde. Ich fand, dass es war, weil ich mod_wsgi Modul in httpd ... nicht lud, da ich sudo Zugang zum Bediener nicht habe, kann ich mod_wsgi nicht direkt zu httpd ich denke ... – forevermio

Antwort

0

ich nur feststellen, dass es auf Grund war ich nicht laden ‚wsgi_module‘ zu httpd conf-Datei. Ich folge einfach dem Befehl https://github.com/GrahamDumpleton/mod_wsgi um LoadModule in die httpd.conf Datei hinzuzufügen. Es löst mein Problem in der korrekten Python-Version zu laufen!
LoadModule- wsgi_module "/usr/lib64/python3.4/site-packages/mod_wsgi/server/mod_wsgi-py34.cpython-34m.so"
WSGIPythonHome "/ usr"
Aber ich fühle es seltsam, dass es zeigen 'modul wsgi_module ist bereits geladen, überspringen' Wenn ich diese Zeilen kommentieren, wird es wieder in python2.7 laufen

+0

Btw, ich fand wsgi.conf in /etc/httpd/conf.modules.d LoadModule wsgi_module modules/mod_wsgi.so. Ich denke, wahrscheinlich muss auf den richtigen Weg hingewiesen werden. – forevermio

+0

Sie müssen zuerst den mod_wsgi deaktivieren, der mit Systempaketen installiert wurde. –