为运行在Apache&;上的django站点升级python;wsgi

为运行在Apache&;上的django站点升级python;wsgi,django,python-3.x,apache,mod-wsgi,wsgi,Django,Python 3.x,Apache,Mod Wsgi,Wsgi,我正在尝试将django站点从运行在Python3.6中切换到运行在Ubuntu16.04上的Python3.7。为此,我在与旧环境相同的路径中创建了一个新环境,并重新安装了所有依赖项 但是,Apache服务器失败,出现以下错误: Fatal Python error: Py_Initialize: Unable to get the locale encoding ModuleNotFoundError: No module named 'encodings' 经过一点研究,哪个错误似乎是由

我正在尝试将django站点从运行在Python3.6中切换到运行在Ubuntu16.04上的Python3.7。为此,我在与旧环境相同的路径中创建了一个新环境,并重新安装了所有依赖项

但是,Apache服务器失败,出现以下错误:

Fatal Python error: Py_Initialize: Unable to get the locale encoding ModuleNotFoundError: No module named 'encodings'
经过一点研究,哪个错误似乎是由于WSGI配置引起的,如下所示:

例如,您不能强制mod_wsgi使用Python虚拟机 最初使用mod_wsgi时使用Python 3.5创建的环境 为Python2.7编译。这是因为 它最初编译的Python安装是链接的 直接进入mod_wsgi模块。换句话说,Python是嵌入式的 在mod_wsgi中。当使用mod_wsgi时,它不会运行命令 行python程序来运行解释器,因此您不能 强制它使用不同的Python安装

发件人:

感谢:

上面提到的OP只是将设置清理干净,从头开始。这对我来说似乎有点极端,因为我似乎应该能够重新安装/重新配置mod wsgi以运行python3.7

按照这种思路,我卸载并重新安装了libapache2-mod-wsgi-py3和mod_wsgi。然而,前者只是自动重新配置为3.6,如下所示:

root@server1:~# dpkg -S mod_wsgi
libapache2-mod-wsgi-py3: /usr/lib/apache2/modules/mod_wsgi.so
libapache2-mod-wsgi-py3: /usr/lib/apache2/modules/mod_wsgi.so-3.6
mod_wsgi安装失败,原因如下:

RuntimeError: The 'apxs' command appears not to be installed or is not executable. 

如何使用python 3.7重新构建wsgi?

嗨,Jed,我遇到了与您描述的完全相同的问题,您能找到解决方案吗?谢谢嘿@Ruthus99,我应该在这里提供我的解决方案作为答案,不幸的是,我已经忘记了我是如何解决这个问题的。如果有机会,我会去看看。