Django + mod_wsgi致命Python错误:Py_Initialize:没有名为Encodings的模块

问题描述:

我试图在Django + mod_wsgi和apache的web浏览器中加载一个网站。我的问题与This Question Here完全相同,但在我的情况下找到的解决方案不起作用。Django + mod_wsgi致命Python错误:Py_Initialize:没有名为Encodings的模块

这里是我的httpd-vhosts.conf设置:

WSGIDaemonProcess binshellpress.com python-home=/usr/local/docs/binshellpress-production/virtpy/ python-path=/usr/local/docs/binshellpress-production/virtpy/lib/python3.6/ 
WSGIProcessGroup binshellpress.com 
WSGIApplicationGroup %{GLOBAL} 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot "/usr/local/docs/binshellpress-production/root" 
    ServerName binshellpress.com 
    ServerAlias www.binshellpress.com 
    ErrorLog "/var/log/httpd/bsp-error_log" 
    CustomLog "/var/log/httpd/bsp-access_log" common 

    Alias /robots.txt /usr/local/docs/binshellpress-production/static/robots.txt 
    Alias /favicon.ico /usr/local/docs/binshellpress-production/static/favicon.ico 

    Alias /media/ /usr/local/docs/binshellpress-production/media 
    Alias /static/ /usr/local/docs/binshellpress-production/static 

    <Directory /usr/local/docs/binshellpress-production/static> 
    Require all granted 
    </Directory> 

    <Directory /usr/local/docs/binshellpress-production/media> 
    Require all granted 
    </Directory> 

    WSGIScriptAlias//usr/local/docs/binshellpress-production/binshellpress/wsgi.py process-group=binshellpress.com 

    <Directory /usr/local/docs/binshellpress-production/binshellpress> 
    <Files wsgi.py> 
     Require all granted 
    </Files> 
    </Directory> 
</Virtualhost> 

我有一个虚拟的环境中/usr/local/docs/binshellpress-production/virtpy成立。我已经重建了mod_wsgi来明确地使用那个虚拟环境。我已执行权限修改,如This Question

的答案中所述。无变化。

我很绝望。我一直在上下寻找。我无法弄清楚该怎么做。请帮帮我。我求求你。

谢谢,任何事情,谢谢,只是请,帮助我,谢谢。

+0

在服务器上,正如用户Apache运行的那样,您是否尝试过激活virtualenv并执行'python manage.py runserver'?这往往会暴露潜在的问题。用系统范围的Python安装编译mod_wsgi总是最好的,而不是virtualenv中的一个,但它必须是您构建virtualenv所用的相同版本。 – FlipperPA

+0

即使使用虚拟环境,也不一定要针对系统Python编译mod_wsgi。事实上,当你在虚拟环境中运行“pip install mod_wsgi”时,它别无选择。 –

首先,检查Python中要使用的和做的python-home值是通过运行命令行正确:

import sys 
sys.prefix 

应该是相同的值。

另外要注意的是:

python-path=/usr/local/docs/binshellpress-production/virtpy/lib/python3.6/ 

应该没有必要,我不明白为什么你想补充一点。

接下来,运行在检查:

哪些图书馆和位置是mod_wsgi的对链接?

如果你的mod_wsgi二进制文件肯定是针对正确的Python版本编译的,那么唯一的问题是它是一个非标准的Python安装而不是系统Python。如果是这种情况,并且它没有正确链接,它可能会找到系统Python共享库,而不是用于单独的Python安装。

从虚拟环境中的Python命令行

再次尝试:

import sys 
sys.real_prefix 

你明白了什么是什么?