【发布时间】:2018-03-25 16:54:13
【问题描述】:
我正在运行一个 apache 服务器,它为一个名为 ingenious 的框架提供服务
读取带有希伯来字符的文件时获取UnicodeDecodeError('ascii'。
我了解到您可以使用环境变量更改 python3 的默认首选编码。
所以我使用 [setenv][3] 方法编辑了/etc/httpd/conf/httpd.conf:
SetEnv LC_ALL en_US.UTF-8
SetEnv LANG en_US.UTF-8
SetEnv LANGUAGE en_US.UTF-8
SetEnv PYTHONIOENCODING utf8
然后使用sudo service httpd restart 重新启动服务器,但仍然无法正常工作。
我必须声明该软件在不使用 apache 服务器运行时可以在本地运行,只是 python3。
locale.getpreferredencoding() 更改后为ANSI_X3.4-1968
这里是/etc/httpd/conf/httpd.conf的内容
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin me@domain.com
<Directory />
AllowOverride none
Require all denied
</Directory>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<IfModule mime_module>
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile On
# Supplemental configuration
LoadModule wsgi_module /usr/lib64/python3.5/site-packages/mod_wsgi/server/mod_wsgi-py35.cpython-35m-x86_64-linux-gnu.so
WSGIScriptAlias / "/usr/bin/inginious-webapp.production"
WSGIScriptReloading On
Alias /static/common /usr/lib/python3.5/site-packages/inginious/frontend/common/static/
Alias /static/webapp /usr/lib/python3.5/site-packages/inginious/frontend/webapp/static/
Alias /static/lti /usr/lib/python3.5/site-packages/inginious/frontend/lti/static/
SetEnv LC_ALL en_US.UTF-8
SetEnv LANG en_US.UTF-8
SetEnv LANGUAGE en_US.UTF-8
SetEnv PYTHONIOENCODING utf8
<Directory "/usr/bin">
<Files "inginious-webapp.production">
Require all granted
</Files>
</Directory>
<DirectoryMatch "/usr/lib/python3.5/site-packages/inginious/frontend/(.+)/static/">
Require all granted
</DirectoryMatch>
IncludeOptional conf.d/*.conf
如何进一步调试?
【问题讨论】:
标签: python python-3.x utf-8 centos mod-wsgi