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.pytest.py 这样的名称。

只需使用其他名称,例如 a.pymy-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无法升级等)

安装 Anaconda 2 后出错:致命 Python 错误:Py_Initialize:无法加载文件系统编解码器

Python —— pycharm初使用

pycharm初体验

pycharm初爬虫

用pycharm初学习使用Django