Pycharm“没有名为REPORT.py的模块”,但是它存在并且有效。但是然后

问题描述 投票:0回答:1

Pycharm说REPORT.py文件不存在。但是代码可以正常工作。

这里是问题的图像:

enter image description here

现在那不是最奇怪的部分。我知道有时在您使用软件包时,您必须引用软件包名称:import package_name.filename,因此当我尝试使用它似乎已修复错误的报告时。

enter image description here

但是然后...

Traceback (most recent call last):
  File "C:/Users/REDACTED/PycharmProjects/REDACTED/MAIN/MAIN.py", line 2, in <module>
    import MAIN.REPORTS as PDD
  File "C:\Users\REDACTED\PycharmProjects\REDACTED\MAIN\MAIN.py", line 2, in <module>
    import MAIN.REPORTS as PDD
ModuleNotFoundError: No module named 'MAIN.REPORTS'; 'MAIN' is not a package

这似乎与Pycharm如何检查我的文件一样有误。

为了完整起见,我也尝试从中导入。

enter image description here

Pycharm也没有将其标记为无效,但是在运行代码时出现了一个有趣的新错误:

Traceback (most recent call last):
  File "C:/Users/REDACTED/PycharmProjects/REDACTED/MAIN/MAIN.py", line 2, in <module>
    from MAIN import REPORTS as PDD
  File "C:\Users\REDACTED\PycharmProjects\REDACTED\MAIN\MAIN.py", line 2, in <module>
    from MAIN import REPORTS as PDD
ImportError: cannot import name 'REPORTS'

根据评论的请求,这里是我的文件夹结构:

enter image description here

根据我确实尝试导入的评论中的建议*,但我仍然从Pycharm获得相同的报告问题。

enter image description here

更新:

我相信我发现了为什么尝试从我的软件包中导入时存在该问题。

由于我的软件包名称是MAIN,而我的主要py文件是MAIN.py,我相信我的代码正在尝试从py文件而非软件包中导入。

[将包重命名为MAIN_PACK并执行import MAIN_PACK.REPORT as PDD后,代码正常运行,而Pycharm并未提供任何报告说它无效。

至少修改了Pycharm报告。

但是仍然不能解释为什么Pycharm报告import REPORTS不是一个模块,但是代码仍然可以工作。有人知道为什么会这样吗?

python pycharm ide
1个回答
1
投票

将主文件夹设置为源根目录。您可以通过右键单击MAIN文件夹并导航到列表底部来做到这一点。将目录标记为源根目录。在控制台下进入Pycharm设置,然后选中将源根添加到python路径。

Pycharm使用源根目录来解析导入。更多信息可以在这里找到

https://www.jetbrains.com/help/pycharm/content-root.html

链接中的相关文本:

源根(或源文件夹;显示为源根图标)。

  • 这些根目录包含实际的源文件和资源。 PyCharm使用源根作为解决导入的起点。源根目录下的文件根据其类型进行解释。 PyCharm可以解析,检查,索引和编译这些根的内容。
© www.soinside.com 2019 - 2024. All rights reserved.