PyCharm:Py_Initialize:无法初始化 sys 标准流
Posted
技术标签:
【中文标题】PyCharm:Py_Initialize:无法初始化 sys 标准流【英文标题】:PyCharm: Py_Initialize: can't initialize sys standard streams 【发布时间】:2014-12-21 14:02:11 【问题描述】:我正在尝试使用 PyCharm IDE,但我的程序都没有编译甚至简单的 Hello World。 PyCharm 给出了这个错误:
Fatal Python error: Py_Initialize: can't initialize sys standard streams
Traceback (most recent call last):
File "C:\Python34\lib\io.py", line 72, in <module>
AttributeError: 'module' object has no attribute 'ABCMeta'
Process finished with exit code 3
我找不到解决方案,也参考了链接PyDev: Fatal error Python32\lib\io.py, line 60, in <module>,但那里没有解决方案。
Python 3.4 安装在我的 Win 7 OS 系统上。
【问题讨论】:
将文件名从io.py
更改为其他名称。
我解决了我的问题。显然 PyCharm 无法执行名为 abc.py
的文件,因为 Python 中有一个名为 abc 的内置模块。通过命令行执行abc.py
有效。检查您的文件是否命名为abc.py
,如果是,请将其重命名为其他名称。
@BurhanKhalid 你能解释一下为什么会出现这个问题以及如何避免它吗?我找不到“保留文件名”或类似的列表。
我遇到了类似的问题。早些时候我将我的包命名为“io”
【参考方案1】:
我遇到了同样的问题,因为我创建了一个名为 abc.py
的文件,在您的项目中删除该文件,您的错误就会消失。
【讨论】:
为什么pycharm不支持文件名abc.py? 如果您将文件命名为 abc.py,您将隐藏 standard library's abc (abstract base class)。当你这样做时,所有依赖于内置 abc 的东西都会得到你的。除非您从本质上重写了标准库的代码,否则一切都会中断。 呼应@david-c,更改模块名称可能有效,但不是必须的。取消选中“运行/调试”配置中的几个框是更好的解决方案。 对我来说效果很好..【参考方案2】:是的,正如您在评论中所说,问题出在文件名“abc”上。如果取消选中,您将能够在 PyCharm 中运行此文件:
将内容根添加到 PYTHONPATH 将源根目录添加到 PYTHONPATH在菜单“运行/调试配置”中。
【讨论】:
这对我有用。我怀疑这应该是公认的答案。不应有诸如“abc.py”之类的魔法禁止模块名称。 还值得检查以确保“工作目录”选项未指向您的文件或子包。 在我的情况下,这是因为内容根目录是使用pip install -e .
安装到我的本地环境的包。【参考方案3】:
我有同样的问题,只需将文件名从 io.py 更改为其他名称,就可以了!
【讨论】:
这很奇怪。我不得不重命名我的一个包,它的名字是 io 并且在调试时(只有那时)它不会工作!更改为 inout 后一切正常。【参考方案4】:终于找到了如何在 PyCharm 中解决这个问题:永远不要使用像 abc.py
或 test.py
这样的名称。
只需使用其他名称,例如 a.py
或 my-unique-file-name.py
【讨论】:
【参考方案5】:试试这个: 文件->设置->编辑器->文件编码 将项目编码更改为 UTF-8
【讨论】:
【参考方案6】:在我的情况下,from .my_file import *
导致了错误。将其更改为from .my_file import func_1, func_2, func_3
即可解决。
【讨论】:
以上是关于PyCharm:Py_Initialize:无法初始化 sys 标准流的主要内容,如果未能解决你的问题,请参考以下文章
python初安装出现的一点问题(pycharm无法安装第三方模块,pip无法升级等)