Python Flask代码在从Eclipse外部运行时引发UnicodeDecodeError(仅限)

Python Flask代码在从Eclipse外部运行时引发UnicodeDecodeError(仅限),python,eclipse,utf-8,flask,pydev,Python,Eclipse,Utf 8,Flask,Pydev,我正在使用Apache2和mod_wsgi来部署Flask应用程序 当使用pydev从Eclipse运行时,即使用Eclipse中的run菜单图标,该应用程序工作得非常好 但是,当从Eclipse外部运行完全相同的代码时(无论是通过命令行调用脚本,还是通过mod_wsgi),将引发UnicodeDecodeError,并且无法显示页面 下面是一段简短的问题代码: label = 'créer' row = '<tr><td>{cell_label}</td>&

我正在使用Apache2和mod_wsgi来部署Flask应用程序

当使用pydev从Eclipse运行时,即使用Eclipse中的run菜单图标,该应用程序工作得非常好

但是,当从Eclipse外部运行完全相同的代码时(无论是通过命令行调用脚本,还是通过mod_wsgi),将引发UnicodeDecodeError,并且无法显示页面

下面是一段简短的问题代码:

label = 'créer'
row = '<tr><td>{cell_label}</td></tr>'.format(cell_label = label)
render_template('template.html', row = row)
template.html包含:

<table>
    {{ row | safe }}
</table>
出现的错误是:

'<tr><td>{cell_label}</td></tr>'.format(cell_label = label)
UnicodeEncodeError: 'ascii' codec can't encode character u'\\xe9' in position 7: ordinal not in range(128)
其他资料

echo$LANG返回:

en_US.UTF-8

文件(u app.py returns)

Python脚本,UTF-8 Unicode文本可执行文件

当我从Ecplise运行代码和执行测试时,我在virtualenv中使用相同的解释器python2.7.3

编辑


更改的问题标题和描述反映了代码只能通过Eclipse运行的事实

我在另外两个回答的问题中找到了解决方案:

识别问题

基本上,问题在于Pydev在后台更改了python的默认编码。这意味着包含非ASCII字符的代码在通过Eclipse和Pydev运行时工作正常,在任何其他上下文中都可能崩溃

找到解决办法

如何在Python<3的控制台上打印UTF-8编码的文本

不应更改默认编码。基思的回答提供了一个解决办法,但它确实不应该被使用。唯一好的解决方案是认识到Pydev的环境是非标准的,只需重写代码块