致命的Python错误:init_sys_streams:无法初始化sys标准流 属性错误:模块'io'没有属性'OpenWrapper'

14

Python 3的安装一直都很正常,直到昨天。今天出现了以下情况。 在命令提示符(Windows 10)中键入Python时的输出:

Fatal Python error: init_sys_streams: can't initialize sys standard streams
AttributeError: module 'io' has no attribute 'OpenWrapper'

Current thread 0x00001204 (most recent call first):

我搜索了很多关于这个问题的答案,但似乎都没有帮助。

以前使用过Python 3和VS Code,如果相关的话。

我还尝试卸载当前的Python(3.6.5)并重新安装最新的Python(3.7.0),但错误仍然存在。任何帮助将不胜感激。


4
你的Python文件名称是否叫做io.py?https://bugs.python.org/issue21202 - E.Serra
即使我只是尝试启动IDLE,也会出现这个错误。而且我没有任何名为io.py的文件。 - Fatal Python Error
你是在PyCharm上运行吗? 如果是,请检查此链接https://dev59.com/q18d5IYBdhLWcg3wpzr4 你可以尝试从命令行运行python <任何脚本>吗? - E.Serra
不,我正在使用Windows 10的CMD。当我尝试运行python <任何脚本>时,仍会出现相同的错误。 - Fatal Python Error
你可以在终端上键入Python并打开解释器吗?如果不能,则可能是Python安装错误,我对Windows不了解。 - E.Serra
很遗憾,无法打开解释器。虽然可能是安装错误,但昨天Python还能正常工作,现在不明白是什么原因导致了这个问题。 - Fatal Python Error
6个回答

16

为了帮助遇到同样问题的人们,以下是解决方法(原帖在另一个论坛上):

https://python-forum.io/Thread-Fatal-Python-error-init-sys-streams-can-t-initialize-sys-standard-streams-Attribute?page=3

如果有人再次遇到这个完全相同的问题,我想澄清一下问题所在以及如何解决。

起初,这似乎是已知的Python bug,当文件被命名为io.py时会与标准模块io产生冲突,但在这里显然不是这个问题。@Gribouillis会员指出尝试执行python -E,然后它就可以工作了。之后,@metulburr再次指出这种行为对于新安装的Python来说并不正常。这显然意味着环境变量中的PYTHONPATH存在问题。

接下来我做的就是从环境变量的路径中删除所有Python路径(可参考@snippsat的截图)。然后卸载当前的Python版本。在重新安装之前,重要的是要摆脱所有指向Python安装目录的路径,因为错误是由于环境变量中的无效Python路径(可能是由于安装目录的更改)导致的。这完全解决了问题。

此外,再次强调@gribouillis所说的,将PYTHONPATH添加到系统中可能是个不好的主意。


1
移除 PYTHONPATH 后问题得到解决。 - Kurt Rojas

4

这可能是由于系统中设置的PYTHONPATH的值无效引起的。请使用以下命令取消设置该环境变量的值: unset PYTHONPATH 现在应该已经解决了问题。如果问题仍然存在,请重新安装Python,您的问题应该得到解决。


4

我自己曾经遇到过创建了一个名为 "abc.py" 的文件的问题。

重命名该文件可以解决这个问题。


我也是,我创建了一个名为abc的文件夹,并在其中放置了一个test.py。 - SimZhou
abc与Python的抽象类(abstract class)模块有冲突。 - SimZhou

0

这个问题可以通过在geopandas包的geopandas目录中运行conda来重现,原因是一个名为io的目录。如果你遇到了这个问题,请尝试更改你的工作目录。


0
我曾将一个包命名为"io",导致了这个错误。将其改名为其他名称解决了问题。

-1

刚刚重启电脑,问题解决了!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接