PyCharm: ImportError 没有名为 X 的模块?

PyCharm: ImportError no module named X?

本例中的

X 代表您安装的任何模块或包。

问题:

我有一个名为 'X' 的包有问题。 在 PyCharm 我得到一个错误 ImportError: No module named 'X'. 我的代码从终端运行没有任何问题。有帮助吗?

我用 pip 在 python3.4 上安装了 X。在终端中,当我导入 X 时,一切都很好,但是当我在 PyCharm 中导入它时,它说:ImportError: No module named 'X'"。有帮助吗?


这基本上是日常问题,只是用不同的模块或包代替名称而不是 X

这不是您安装的包或模块的问题,而是您当前用于项目的 PyCharm 项目解释器 中的问题。

以下答案通常是针对此特定问题的解决方案。

精简版:

如果导入的模块下方有波浪线...

...移至模块名称并按 Alt+Enter 和 select Install package X

这应该(可能 !!!)安装您认为已安装的模块,但得到了 ImportError


更长:

如果你想使用模块 X:

转到File -> Settings -> Project:NameOfProject -> Project Interpreter

打开的window有一些特定的区域:

  1. 这是 PyCharm 当前正在使用的项目解释器。您也可以在这里更改 python 环境。如果您想添加手动创建的虚拟环境,请继续阅读。
  2. 一点"cog""gear"用于添加、编辑或移除 环境。如果您想添加您手动创建的虚拟环境,请在单击齿轮图标时 select Add...,并确保为您的虚拟环境设置正确的 python.exe 路径。
  3. 重要提示:所有已安装软件包的列表,表示为:软件包名称版本.如果您尝试使用包,但得到 ImportError no module named 'X'请务必检查此处是否列出包!!!。如果没有,则当前 python 环境中未安装它,应该安装它(继续阅读)。
  4. 有点+代表Install。它可以用来安装包。只需点击 + 符号,搜索包,找到后点击底部的 Install Package。您还可以指定您想要的包版本。在下面的示例中,我们搜索了 flask 包。

    现在应该安装一个包并在已安装的包中列出。

PyCharm 为您的项目创建一个带有自己的 Python 解释器的虚拟环境,您需要为您正在使用的解释器安装模块。为此,请转至设置 -> 项目:您的项目名称 -> Python 解释器,单击加号图标和 select 您要安装的模块。 或者,您可以强制 PyCharm 使用您的其他解释器,方法是从我之前提到的 Python 解释器设置页面顶部的下拉列表中 select 将其

这有很多原因。 我要放在这里的原因和修复 非常罕见 ,只是决定放在这里希望至少有一个人可以从这个答案中获得帮助。

问题

PyCharm 将 __init__.py 视为非 python 文件。

当您忘记在 您的代码的 __init__.py 文件中使用 .py 扩展名,然后您稍后添加扩展名时,就会发生这种情况。然后 pycharm 开始将所有 __init__.py 文件(甚至外部库文件)视为非 python。好奇怪?

检测是否是这个问题

滚动单击库名称(不是模块名称)。

或右击并转到 Declaration or Usages

您将看到库的 __init__.py 为纯文本。

如果您看到代码是纯文本,那就是问题所在!

解决方案

在 pycharm 导航中找到文件位置。如果你使用的是虚拟环境,文件填写在venv/lib/site-packages/{library_name}.

右键单击 __init__.py,单击覆盖文件类型。 Select python.

您会看到错误消失了!