/ / Flask Application Ausführen von Python 2.x statt 3.x - Python, Flask

Flask-Anwendung Ausführen von Python 2.x anstelle von 3.x - python, flask

Beim Ausführen meiner Flask-Anwendung auf meinem Ubuntu 16.04.3 x64-Webserver erhalte ich beim Importieren der Flask-OpenID-Bibliothek v1.2.5 die folgende Fehlermeldung:

 File "/usr/local/lib/python2.7/dist-packages/openid/oidutil.py", line 17, in <module>
from urllib.parse import urlencode
ImportError: No module named parse

Ich verstehe, dass dies geschieht, weil dieses Modul mit Python 2.7.5 (das ich auf meinem Rechner installiert habe) anstelle von 3.5.2 geladen wird (auch installiert haben).

Wenn Sie die Version von Python überprüfen, wird überprüft, ob sie auf dem Computer installiert ist:

>> python -V
Python 3.5.2

Die virtuelle Umgebung wurde mit Python 3 initialisiert:

python3 -m venv env

Die Flask-App scheint immer noch Dateien aus dem Python 2.7.5 zu verwenden.

Gibt es eine Möglichkeit, einen Standard festzulegen oder um sicherzustellen, dass Flask die richtige Version von Python verwendet? Meine App läuft fehlerfrei in meiner Entwicklungsumgebung auf meinem PC.

Antworten:

2 für die Antwort № 1

Es stellt sich heraus, dass meine virtuelle Umgebung warrichtig konfiguriert, jedoch bestand das Problem in der Tat darin, dass mod_wsgi auf dem Apache-Webserver ausgeführt wurde, für Python Version 2.7.X kompiliert wurde und Flask mit Python 2.7.5 statt 3.5.2 geladen wurde.

Um dieses Problem zu beheben, wurde zunächst die Version von wsgi aktualisiert, auf der Python 3.5.1 und höher ausgeführt wird

sudo apt-get install libapache2-mod-wsgi-py3

Ab diesem Zeitpunkt wird Ihre Flaschenanwendung möglicherweise nicht mehr ausgeführt, da Ihr virtueller Host und die Wsgi-Datei für Ihre Flaschenanwendung ordnungsgemäß mit Python Version 3 konfiguriert werden muss.

Folgen Sie dieser Anleitung: http://devmartin.com/blog/2015/02/how-to-deploy-a-python3-wsgi-application-with-apache2-and-debian/

Sie sollten auch Ihre VirtualHost-Konfiguration auf die in diesem Beitrag gezeigte und ändern. https://stackoverflow.com/a/39419825/9367575