Python doctests和unicode

时间:2013-07-03 03:15:28

标签: python unicode python-3.x python-2.x doctest

我的代码库在Python 2.7和3.2+中保持不变。但文档第一个文件中的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'

有没有办法让第一个文件中包含unicode字符的doctest在Python 2.7和3.2 +中保持不变?

1 个答案:

答案 0 :(得分:1)

确保使用的是Python 3.3。它添加了显式u'unicode literals' - 即再次使用u前缀 - 以简化Python 2与unicode文字和Python 3之间的转换。请参阅http://docs.python.org/3/whatsnew/3.3.html#pep-414-explicit-unicode-literals