我的代码库在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 +中保持不变?
答案 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