我希望得到的答案可以累积一般的原因清单,原因unicode_literals
可能无法正常工作
from __future__ import unicode_literals
此功能会产生good和bad后果。它在Python 3中没有任何效果。对于Python 2,它默认使所有字符串文字都是unicode,没有u''
前缀。
此功能在烧瓶文件中的特定情况下无效,该文件开头:
# encoding: utf-8
from __future__ import unicode_literals
from __future__ import print_function
assert isinstance('123', unicode)
当我从命令行运行时,此断言通过。但是当被apache运行时失败了。 (也就是说,这个断言失败消息出现在我的error_log中。)我的目标是在任何地方都有unicode字符串。
以下是我特定情况所特有的几个方面,可以想象得到:
上面的.py文件直接在我的WSGIScriptAlias
指令中命名,而不是如示例中的中间.wsgi文件。
我在导入烧瓶之前执行了active_this.py for virtualenv。我不认为这很重要,因为它在文件的后面出现但是这些是
ACTIVATE_THIS_PY = '/somewhere/somewhere/activate_this.py' execfile(ACTIVATE_THIS_PY, dict(__file__=ACTIVATE_THIS_PY)) import flask
相关: