将mod_wsgi从python3.5更改为3.6

Nit*_*hen 5 mod-wsgi apache2 python-3.5 python-3.6

我有一个烧瓶应用程序,该应用程序过去曾在apache2上与python3.5一起运行。我现在正尝试将其更改为在3.6上运行(我的代码中只有sone类型提示,而3.6仅支持该类型)。

我已经为python3.6安装了模块,但是当尝试重新启动apache并运行我的应用程序时,它失败了。
跑步时

mod_wsgi-express module-location
Run Code Online (Sandbox Code Playgroud)

我有python3.5版本

/usr/local/lib/python3.5/dist-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so
Run Code Online (Sandbox Code Playgroud)

我的服务器上的python3.6目录中也存在相同的文件。
我还更改了$ PATH以将python3.6作为python的默认运行。
如何告诉apache在python3.6而非3.5上运行?

Nit*_*hen 11

哇!工作正常!
我卸载了mod_wsgi(sudo apt get remove libapache2-mod-wsgi)。然后,通过pip专门将模块安装到python3.6(python3.6 -m pip install mod_wsgi),但此时apache仍运行python3.5。
我加入到apache配置文件(在ubunutu 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用于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文件等等,所以希望这对任何人都有帮助。


小智 5

该LoadModule解决方案对我有用。然而,我发现首先确保 a2dismod wsgi默认的 apache2 模块提供的内容是最简单的。我花了 3 天的时间查看各种解决方案和答案,并回顾了 Graham 的 WSGI 指南。