提问人:jaried 提问时间:4/21/2021 最后编辑:jaried 更新时间:9/30/2022 访问量:4562
UnicodeDecodeError:在 PyCharm 社区中调试 Python 文件时出现“utf-8”
UnicodeDecodeError: 'utf-8' when debugging Python files in PyCharm Community
问:
目前的结论:
的文件是 ->-> -> 。每次转换后重新打开文件。encoding
converted
utf-8
utf-8 big
ansi
utf-8
观察一段时间后,没有这样的误差。
当我使用 PyCharm 调试文件时,文件有时会有 UnicodeDecodeError,有时是正常的。我的操作系统是Windows 10,PyCharm版本是2020.3.3社区版。.py
same
错误如下:
Traceback (most recent call last):
File "D:\Program Files\JetBrains\PyCharm Community Edition 2020.3.3\plugins\python-ce\helpers\pydev\_pydevd_bundle\pydevd_comm.py", line 301, in _on_run
r = r.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 1022-1023: unexpected end of data
我尝试将以下代码添加到文件头中,但有时仍然出现错误,如何解决?
#!/usr/bin/env Python
# coding=utf-8
我找到了另一种使用记事本另存为 UTF-8 文档的方法。我试过了,但有时仍然有错误。
答:
添加“忽略”。成功了。
r = r.decode('utf-8', 'ignore')
https://docs.python.org/3/howto/unicode.html
评论
\n
正如问题中所描述的那样,这个问题没有一个单一的答案。许多问题都可能导致指示的错误,因此最好在 PyCharm IDE 的上下文中解决几个可能的因素。
每个 Python 文件(或任何其他文件)都有一个编码。源代码文件的默认编码是 Unicode UTF-8。这个问题是初学者经常遇到的,所以让我们从官方文档中找出相关的引文(以缩短任何不必要的阅读时间):
.py
.py
Python 源代码的默认编码是 UTF-8,因此您可以简单地在字符串文本中包含 Unicode 字符。
这意味着在大多数情况下,您不需要编码字符串,请参阅 Python 源代码编码 - PEP 263。目前的做法是默认以 UTF-8 编码源文件,并省略模块顶部的编码字符串(这也更简洁)。
PyCharm IDE 具有许多编码配置,可以依次优化,从全局到项目,再到文件路径。默认情况下,所有内容都应设置为 UTF-8,尤其是源代码。请参阅官方 PyCharm 文档配置文件编码设置。
上述情况的例外情况是,如果您正在处理外部数据文件,在这种情况下,您的源代码仍应保留为 UTF-8,并且数据文件应以所需的任何编码打开。关于 的大多数问题都是关于在使用
open()
函数打开某些数据文件时指定正确的文件编码(它们与编写代码的源文件的编码无关)。UnicodeDecodeError
当源文件导致此错误时,常见原因是在复制粘贴或打开未以 UTF-8 编码的源代码文件之后。(当您从未以 UTF-8 编码的文件复制并且 IDE 不会自动将您正在复制粘贴的内容转换为编辑器时,复制粘贴尤其出乎意料)。这可能会导致上述错误。因此,您应该缩小源代码文件的编码范围,而不是 UTF-8 并对其进行转换。
我们无法访问您的项目文件,但对我来说,错误消息显示为调试器试图打开未以 UTF-8 编码的用户源代码文件,这与 IDE 配置和模块编码相反。
文件“D:\Program Files\JetBrains\PyCharm Community Edition 2020.3.3\plugins\python-ce\helpers\pydev_pydevd_bundle\pydevd_comm.py”
评论
我遇到了同样的问题,在更改了我的解释器设置中使用的 python 可执行文件的大小写后,我终于解决了它,如此处所述。长话短说,有时 PyCharm 会尝试使用(大写的“P”)而不是 .更改此设置后,我可以再次调试。venv
Python
python
评论
看看 Stefan Ukena 在这个线程上的回答:
https://youtrack.jetbrains.com/issue/PY-14497#focus=Comments-27-5243196.0-0
如果链接失效,请引用:
您可能需要在 Pycharm >设置中更改 Python 解释器。在我的情况下(使用 pipenv),它指向带有大写 P 的 /Library/.../bin/Python.打开文件夹并检查,我发现该文件或符号链接实际上是带有小写 p 的 python。在 Pycharm 设置中将其从 .../Python 更改为 .../python 解决了此问题。(之后我不得不重新启动 Pycharm。
它也帮助了我,但只有当我切换到 pipenv 而不是通常的 venv 时。我将 Python 更改为 python 并且调试器可以工作,但我仍然收到错误/警告:
OSError: [Errno 9] Bad file descriptor
但无论如何它都有效。如果没有调试器,它将按预期工作,并且不会出现上述错误。
嗨,我一直在解决问题,我关注了这个博客,但在我的情况下,它是 python(小写),所以我尝试更改
from : {您的项目路径}/venv/bin/python
to : {您的项目路径}/venv/bin/python3.8
我不知道为什么,但它对我有用。
评论