Pycharm "no module named REPORT.py" 但是它存在并且有效。但是之后
Pycharm "no module named REPORT.py" however it exist and works. But then
Pycharm 说 REPORT.py 文件不存在。然而代码运行完美。
问题图片如下:
这还不是最奇怪的部分。我知道有时当你在一个包中工作时你必须引用包名称:import package_name.filename
所以当我尝试它似乎已经修复了不正确的报告。
但后来...
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 检查我的文件的错误。
为了完整起见,我还尝试从中导入。
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'
根据评论中的要求,我的文件夹结构是:
根据评论中的建议,我确实尝试导入 * 但我仍然从 Pycharm 得到相同的报告问题。
更新:
我相信我在尝试从我的包中导入时发现了问题存在的原因。
由于我的包名称是 MAIN
而我的主要 py 文件是 MAIN.py
我相信我的代码试图从 py 文件而不是包导入。
将我的包重命名为 MAIN_PACK
并执行 import MAIN_PACK.REPORT as PDD
后代码工作正常,没有任何来自 Pycharm 的报告说它无效。
至少修复了 Pycharm 报告。
However that still does not explain why Pycharm reports that import REPORTS
is not a module but still the code would work.Does anyone know why this is occurring?
将主文件夹设置为源根目录。您可以通过右键单击 MAIN 文件夹并导航到列表底部来执行此操作。将该目录标记为源根目录。进入控制台下的 Pycharm 设置并检查 add source roots to python path.
Pycharm 使用源根来解析导入。可以在此处找到更多信息
https://www.jetbrains.com/help/pycharm/content-root.html
来自link的相关文字:
Source roots (or source folders; shown as the Source root icon ).
- These roots contain the actual source files and resources. PyCharm uses the source roots as the starting point for resolving imports.
The files under the source roots are interpreted according to their type. PyCharm can parse, inspect, index, and compile the
contents of these roots.
Pycharm 说 REPORT.py 文件不存在。然而代码运行完美。
问题图片如下:
这还不是最奇怪的部分。我知道有时当你在一个包中工作时你必须引用包名称:import package_name.filename
所以当我尝试它似乎已经修复了不正确的报告。
但后来...
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 检查我的文件的错误。
为了完整起见,我还尝试从中导入。
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'
根据评论中的要求,我的文件夹结构是:
根据评论中的建议,我确实尝试导入 * 但我仍然从 Pycharm 得到相同的报告问题。
更新:
我相信我在尝试从我的包中导入时发现了问题存在的原因。
由于我的包名称是 MAIN
而我的主要 py 文件是 MAIN.py
我相信我的代码试图从 py 文件而不是包导入。
将我的包重命名为 MAIN_PACK
并执行 import MAIN_PACK.REPORT as PDD
后代码工作正常,没有任何来自 Pycharm 的报告说它无效。
至少修复了 Pycharm 报告。
However that still does not explain why Pycharm reports that
import REPORTS
is not a module but still the code would work.Does anyone know why this is occurring?
将主文件夹设置为源根目录。您可以通过右键单击 MAIN 文件夹并导航到列表底部来执行此操作。将该目录标记为源根目录。进入控制台下的 Pycharm 设置并检查 add source roots to python path.
Pycharm 使用源根来解析导入。可以在此处找到更多信息
https://www.jetbrains.com/help/pycharm/content-root.html
来自link的相关文字:
Source roots (or source folders; shown as the Source root icon ).
- These roots contain the actual source files and resources. PyCharm uses the source roots as the starting point for resolving imports. The files under the source roots are interpreted according to their type. PyCharm can parse, inspect, index, and compile the contents of these roots.