4

我有一个在 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'

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

4

1 回答 1

1

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

于 2013-07-03T06:49:28.253 回答