致命的Python错误:Py_Initialize:无法获取区域设置编码ModuleNotFoundError:没有名为“ encodings”的模块

时间:2019-03-20 06:27:32

标签: django apache mod-wsgi

使用mod_wsgi运行django应用时遇到问题。

这是日志消息

[wsgi:info] [pid 21407] mod_wsgi (pid=21407): Python home /var/www/myproject/myenv.
[wsgi:info] [pid 21407] mod_wsgi (pid=21407): Initializing Python.
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

在检查SO中的其他问题以及在mod_wsgi的github页面上时,解决此问题的方法是使配置指向环境。

在这一点上,我确定我将python home设置指向了正确的环境路径

我还执行了sys.prefix,它确实指向/var/www/myproject/myenv

我还确定我使用了正确的python版本来构建mod_wsgi并为我的项目创建virtualenv。

我也能够运行pip install -r requirements.txt

这是我的配置文件

LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so

WSGIRestrictEmbedded On

WSGIPythonHome /var/www/myproject/myenv

WSGIScriptAlias / /var/www/myproject/myproject/wsgi.py process-group=sgcdjango.com
WSGIDaemonProcess sgcdjango.com python-home=/var/www/myproject/myenv
WSGIProcessGroup myapp.com
WSGIApplicationGroup %{GLOBAL}

<Directory /var/www/myproject/myapp/>
    <Files wsgi.py>
        Allow from all
        Require all granted
    </Files>
</Directory>

Alias /static/ /var/www/myproject/static/

<Directory /var/www/myproject/static>
    Require all granted
</Directory>

0 个答案:

没有答案