为什么没有__future__ unicode_literals工作?

时间:2016-07-01 16:02:36

标签: python unicode flask wsgi string-literals

我希望得到的答案可以累积一般的原因清单,原因unicode_literals可能无法正常工作

from __future__ import unicode_literals

此功能会产生goodbad后果。它在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字符串。

以下是我特定情况所特有的几个方面,可以想象得到:

  • Python 2.7.11,Flask 0.11,Apache 2.2.15
  • 上面的.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

相关:

0 个答案:

没有答案