/ / Приложение на колбата Изпълнява Python 2.x вместо 3.x - python, flask

Приложение на флаш Намиране на Python 2.x вместо 3.x - python, колба

Когато стартирате приложението ми Flask на моя Ubuntu 16.04.3 x64 уеб сървър, получавам следната грешка, когато се опитвам да импортирам библиотеката Flask-OpenID v1.2.5:

 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

Разбирам, че това се случва, защото този модул се зарежда с използване на python 2.7.5 (който съм инсталирал на машината) вместо 3.5.2 (също е инсталиран).

Проверка на версията на python проверява дали е инсталирана на машината:

>> python -V
Python 3.5.2

Виртуалната среда е инициализирана с python 3:

python3 -m venv env

Приложението Flask все още изглежда да използва файлове от питона 2.7.5.

Ако това наистина е проблем, има ли начин да зададете по подразбиране или да се уверите, че Flask използва правилната версия на python? Приложението ми работи без грешки в моята среда за разработка на моя компютър.

Отговори:

2 за отговор № 1

Оказва се, че виртуалната ми среда е билаконфигуриран правилно, но проблемът беше в това, че mod_wsgi работи на Apache уеб сървър, беше компилиран през Python версия 2.7.X и се зареждаше Flask с python 2.7.5 вместо 3.5.2.

За да поправите този проблем, първо актуализирах версията на wsgi, която би стартирала python 3.5.1+

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

От този момент нататък, вашето приложение за колба може да не работи, тъй като вашият виртуален хост, и wsgi файл за вашето приложение трябва да бъде конфигуриран правилно с Python версия 3.

Следвайте този урок: http://devmartin.com/blog/2015/02/how-to-deploy-a-python3-wsgi-application-with-apache2-and-debian/

Трябва също да промените конфигурацията на VirtualHost на показаната и обяснена на тази публикация: https://stackoverflow.com/a/39419825/9367575