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
的答案中所述。无变化。
我很绝望。我一直在上下寻找。我无法弄清楚该怎么做。请帮帮我。我求求你。
谢谢,任何事情,谢谢,只是请,帮助我,谢谢。
答
首先,检查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
你明白了什么是什么?
在服务器上,正如用户Apache运行的那样,您是否尝试过激活virtualenv并执行'python manage.py runserver'?这往往会暴露潜在的问题。用系统范围的Python安装编译mod_wsgi总是最好的,而不是virtualenv中的一个,但它必须是您构建virtualenv所用的相同版本。 – FlipperPA
即使使用虚拟环境,也不一定要针对系统Python编译mod_wsgi。事实上,当你在虚拟环境中运行“pip install mod_wsgi”时,它别无选择。 –