我已经使用mod_wsgi在Apache(httpd)中部署了Python Web应用程序(使用金字塔)。
启动Apache服务后,当我们向Web应用程序发出http请求时,会发生下面的错误(来自Apache日志)…
[Mon Feb 06 16:38:55.980119 2017] [wsgi:error] [pid 16031] [remote 172.16.13.1:204] mod_wsgi (pid=16031): Target WSGI script '/usr/local/lb/ve32/src/LBGenerator/lbgenerator.wsgi' cannot be loaded as Python module. [Mon Feb 06 16:38:55.980205 2017] [wsgi:error] [pid 16031] [remote 172.16.13.1:204] mod_wsgi (pid=16031): Exception occurred processing WSGI script '/usr/local/lb/ve32/src/LBGenerator/lbgenerator.wsgi'. Traceback (most recent call last): File "/usr/local/lb/ve32/src/LBGenerator/lbgenerator.wsgi", line 1, in <module> from pyramid.paster import get_app File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/paster.py", line 10, in <module> from pyramid.scripting import prepare File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/scripting.py", line 1, in <module> from pyramid.config import global_registries File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/config/__init__.py", line 30, in <module> from pyramid.exceptions import ( File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/exceptions.py", line 1, in <module> from pyramid.httpexceptions import ( File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/httpexceptions.py", line 138, in <module> from pyramid.response import Response File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/response.py", line 23, in <module> init_mimetypes(mimetypes) File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/response.py", line 16, in init_mimetypes mimetypes.init() File "/usr/local/lb/py32/lib/python3.2/mimetypes.py", line 351, in init db.read(file) File "/usr/local/lb/py32/lib/python3.2/mimetypes.py", line 203, in read self.readfp(fp, strict) File "/usr/local/lb/py32/lib/python3.2/mimetypes.py", line 214, in readfp line = fp.readline() File "/usr/local/lb/py32/lib/python3.2/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 2727: ordinal not in range(128)
这个web python应用程序在所有这些发行版中都能很好地工作:Ubuntu 14.04,Debian 8,RedHat 6,CentOS 6,Suse 12和openSUSE 13,但在CentOS 7中却不行… =
我们在“CentOS 7”中使用“Python 3.2.2”,“mod_wsgi 4.3.2”和“Apache 2.4.6”。 该Web应用程序build立在Pyramid Web框架之上( http://docs.pylonsproject.org/projects/pyramid/en/latest/ )。
这是一个相当常见的错误! 到目前为止,我还没有find一个方法来获取有关此错误的更多信息。
我们已经尽了一切努力来解决这个问题,我们根本不知道为什么会发生… = [
请帮帮我!
发生这个问题是因为CentOS 7的/etc/mime.types文件的字符为"³" (行"application/vnd.geocube+xml g3 g³" ),这对ascii(不扩展)是无效的。
为了解决这个问题,我不得不对Python 3.2.2做一些修改,重新加载我的应用程序。
解决办法是删除"³"字符或任何其他无效(ascii)字符!
@MichaelHampton
谢谢!