apache2 - 将 mod_wsgi 从 python3.5 更改为 3.6

标签 apache2 python-3.5 mod-wsgi python-3.6

我有一个 Flask 应用程序,用于在 apache2 上使用 python3.5 运行。 我现在尝试将其更改为在 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 目录中也存在相同的文件。
我还更改了 $PATH 以运行 python3.6 作为 python 的默认值。
我怎样才能告诉apache在python3.6上运行而不是在3.5上运行?

最佳答案

哇哈!正在工作!
我卸载了 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文件等,希望这对任何人都有帮助。

关于apache2 - 将 mod_wsgi 从 python3.5 更改为 3.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49096859/

相关文章:

apache - 名称虚拟主机 * :80 has no VirtualHosts

mysql - 当网站繁忙时如何阻止 apache2 崩溃?

Pandas 时间序列重采样和插值在一起

python-3.5 - 使用pybrain创建网络

python - apache2、mod_wsgi、python 网络应用程序(bottle 框架)

django - 如何使用 Apache 和 mod_wsgi 为 django 网站单独设置 LD_LIBRARY_PATH

python - 将 Django 与 Apache、mod-wsgi 和 mod-wsgi_httpd 结合使用

windows - 在虚拟主机中创建别名目录

apache - 我可以安全地禁用哪些 Apache2 模块?

python asyncio 从 3.4 迁移到 3.5+