/ / Flaskアプリケーション3.xの代わりにPython 2.xを実行する - python、flask

Flaskアプリケーション3.xの代わりにPython 2.xを実行する - python、flask

Flask-OpenIDライブラリv1.2.5をインポートしようとすると、私のUbuntu 16.04.3 x64 WebサーバーでFlaskアプリケーションを実行すると、次のエラーが表示されます。

 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

私は、このモジュールが3.5.2の代わりにPython 2.7.5(マシンにインストールされている)を使用して読み込まれていることも理解しています(これもインストールされています)。

Pythonのバージョンを確認すると、Pythonがマシンにインストールされていることが確認されます。

>> python -V
Python 3.5.2

仮想環境はpython 3で初期化されました:

python3 -m venv env

Flaskアプリはまだpython 2.7.5のファイルを使用しているようです。

これが本当に問題であれば、デフォルトを設定する方法やFlaskが正しいバージョンのPythonを使用するようにする方法はありますか?私のアプリケーションは、自分のPCの開発環境でエラーなく実行されます。

回答:

回答№1は2

私の仮想環境は正しく設定されていましたが、実際Apache Webサーバー上で動作するmod_wsgiはPythonバージョン2.7.Xでコンパイルされ、3.5.2ではなくPython 2.7.5でFlaskがロードされていました。

この問題を解決するために、私は最初にpython 3.5.1 +を実行するwsgiのバージョンに更新しました

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