ModuleNotFoundError - 在 Pycharm 智能感知中找到模块,但在执行程序时找不到
ModuleNotFoundError - Module found in Pycharm intellisense but not when executing program
使用 PyCharm,我有一个具有以下结构的 SMTP 解析器项目:
- SMTP
- Classes
- Models
- Transformers
- Tests
在 Tests
中,我像这样从 SMTP.Classes.Transformers
引用 类:
from SMTP.Classes.Transformers.myclass import MyClass
这有效,我的单元测试 运行 正确。
不过,我现在添加了代理文件myProxy.py
:
- SMTP
- Classes
- Models
- Transformers
- Tests
- myProxy.py
在 myProxy.py
中,我尝试导入我的 类,就像上面一样:
from SMTP.Classes.Transformers.myclass import MyClass
当我输入 from S
时,PyCharm 实际上建议 SMTP
并且当我写出来时,它没有显示错误。我什至可以使用 "run" 按钮在 PyCharm 内启动 myProxy
。
但是,当我尝试从控制台 运行 myProxy.py
时,我得到 ModuleNotFoundError: No module named 'SMTP'
当我从每个受影响的文件中删除 SMTP
部分时,我可以从控制台中 运行 这部分。它甚至在 PyCharm 上 运行s。但是,PyCharm 出于某种原因确实将我的导入强调为错误。
这里的错误到底是什么?我该如何解决才能使 PyCharm 中没有错误,并且 运行 我的程序可以在 pycharm 和控制台上运行?
您可以尝试省略 SMTP
而只是将 Classes
标记为 PyCharm 中的源根目录,方法是:右键单击 Classes
目录 > 标记目录为 > 源根目录。
使用 PyCharm,我有一个具有以下结构的 SMTP 解析器项目:
- SMTP
- Classes
- Models
- Transformers
- Tests
在 Tests
中,我像这样从 SMTP.Classes.Transformers
引用 类:
from SMTP.Classes.Transformers.myclass import MyClass
这有效,我的单元测试 运行 正确。
不过,我现在添加了代理文件myProxy.py
:
- SMTP
- Classes
- Models
- Transformers
- Tests
- myProxy.py
在 myProxy.py
中,我尝试导入我的 类,就像上面一样:
from SMTP.Classes.Transformers.myclass import MyClass
当我输入 from S
时,PyCharm 实际上建议 SMTP
并且当我写出来时,它没有显示错误。我什至可以使用 "run" 按钮在 PyCharm 内启动 myProxy
。
但是,当我尝试从控制台 运行 myProxy.py
时,我得到 ModuleNotFoundError: No module named 'SMTP'
当我从每个受影响的文件中删除 SMTP
部分时,我可以从控制台中 运行 这部分。它甚至在 PyCharm 上 运行s。但是,PyCharm 出于某种原因确实将我的导入强调为错误。
这里的错误到底是什么?我该如何解决才能使 PyCharm 中没有错误,并且 运行 我的程序可以在 pycharm 和控制台上运行?
您可以尝试省略 SMTP
而只是将 Classes
标记为 PyCharm 中的源根目录,方法是:右键单击 Classes
目录 > 标记目录为 > 源根目录。