【发布时间】:2013-06-30 14:47:04
【问题描述】:
我有一个在 Python 2.7 和 3.2+ 中运行不变的代码库。但是文档 rst 文件中的 doctests 让我很头疼。当我在 Python2 中运行它们时,我得到UnicodeEncodeError: 'ascii' codec can't encode character u'\xb2' in position 16: ordinal not in range(128)。如果我添加
.. testsetup:: *
from __future__ import unicode_literals
然后我收到很多错误,例如
Expected:
'something'
Got:
u'something'
有没有办法在 Python 2.7 和 3.2+ 中保持不变的第一个文件中包含 unicode 字符的 doctest?
【问题讨论】:
-
在运行它们时实际指定要使用的编码是否需要做很多工作?
-
@PauloBu:你是怎么做到的?
-
好吧,我没有看到代码,所以这会很困难,但是,您是否在代码中的某处使用了函数
doctest.testfile?如果是这样,请添加到问题中。 -
我没有。当我使用 sphinx (
make doctest) 构建文档时,会调用 Doctests。我在 pypi 注册中遇到了类似的错误。我希望找到基于更改 rst 文件而不是调用的解决方案。在 -
请添加给您带来问题的代码。回溯也将提供丰富的信息。
标签: python unicode python-3.x python-2.x doctest