web-dev-qa-db-ja.com

mod_wsgiをpython3.5から3.6に変更

私はflaskアプリを持っています。私は現在、3.6で実行するようにそれを変更しようとしています(私は、 3.6)。

python3.6用のモジュールをインストールしましたが、Apacheを再起動してアプリを実行しようとすると失敗します。
実行中

mod_wsgi-express module-location

私はpython3.5バージョンを持っています

/usr/local/lib/python3.5/dist-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so

同じファイルが私のサーバーのpython3.6 dirにも存在します。
また、Pythonのデフォルトとしてpython3.6を実行するように$ PATHを変更しました。
Apacheに3.5ではなくpython3.6で実行するように指示するにはどうすればよいですか?

5
Nitzan Cohen

うわ!うまくいきました!
mod_wsgi(Sudo apt get remove libapache2-mod-wsgi)をアンインストールしました。次に、特にpython3.6(python3.6 -m pip install mod_wsgi)にpipを介してモジュールをインストールしましたが、この時点ではApacheはまだpython3.5を実行していました。
Apache構成ファイルに追加しました(ubuntu 16.4では、ファイルは次の場所にあります:/etc/Apache2/Apache2.confおよび/usr/local/lib64/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so for RHEL/CentOS 7)。
LoadModule wsgi_module "/usr/local/lib/python3.6/dist-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"
そして
WSGIPythonHome "/usr"そしてそれでうまくいきました。
私はこの問題について多くの涙を流し、Apache2.confファイルなどを見つけたので、これが誰にとっても役立つことを願っています。

11
Nitzan Cohen

LoadModuleソリューションがうまくいきました。ただし、デフォルトのApache2モジュールによって提供されるa2dismod wsgiを最初に確認するのが最も簡単であることがわかりました。私は3日間かけてさまざまなソリューションと回答を検討し、GrahamのWSGIガイドを確認しました。

2
Marc Ubaldino