【发布时间】:2020-10-07 14:55:05
【问题描述】:
我遇到了以下错误。当并非所有文件都可utf-8 编码时,poetry run pytest -v 上的测试将失败。
================================================ =============== 错误 =================================== ============================== ____________________________________________ 错误收集测试/匿名/test.txt _________________________________________ .venv/lib/python3.8/site-packages/py/_path/common.py:171:在 read_text 返回 f.read() ../../../.pyenv/versions/3.8.2/lib/python3.8/codecs.py:322: 在解码 (结果,消耗)= self._buffer_decode(data,self.errors,final)E UnicodeDecodeError:'utf-8'编解码器无法解码字节0xf8 位置 380:无效的起始字节 ==================================================== ====简短的测试摘要信息=========================================== ============= 错误测试/匿名/test.txt - UnicodeDecodeError: 'utf-8' codec 无法解码位置 380 中的字节 0xf8:无效的起始字节 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!中断:1 个错误 收集期间!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
与此同时,完全相同的设置适用于 Python 3.7,如果我使用 poetry run pytest tests/my_tests.py 运行测试。
我正在使用:Python 3.8.2,诗歌 1.0.5
我该如何解决?这个错误很烦人,因为它在 CI 中失败了。
【问题讨论】:
-
检查pytest,并删除相关测试。似乎(非常)旧的 UTF-8(U 作为通用,所以 UCS,它允许字符直到 7FFF FFF)和新的 UTF-8(U 作为 Unicode,只到 10 FFFF)之间存在一些不兼容,或者在异常类。您收到错误非常奇怪,所以它应该是一些“外部”依赖/测试,它不是最新的
标签: python utf-8 python-3.8