Python doctests 和 unicode

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

我有一个在 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 字符?

最佳答案

确保您使用的是 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-literals

关于Python doctests 和 unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439062/

相关文章:

python - 为什么 numpy 对其均匀随机使用半开区间?

unicode - 是否有一个看起来像 "key"图标的 Unicode 字形?

python - 替换 reduce() 的功能方法

php - 如何将一个 unicode 字符转换为第二个看起来完全相同的字符?

python - SQLite 数据库上的 Fetchall() 返回 unicode 字符串 [Python 2.7]

python - 使用 Tweepy 访问 twitter API 时出错

python - 导入错误 : attempted relative import with no known parent package in flask

python - POST 多个复选框值 Tornado

javascript - 来自浏览器的 python Flask socketio 404/400

python - 如何在 OpenCV 的矩形中使用归一化坐标