ModuleNotFoundError-在Pycharm智能感知中找到模块,但在执行程序时找不到

时间:2020-03-23 09:07:40

标签: python pycharm python-import importerror

使用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,而当我将其写出时,它没有显示任何错误。我什至可以使用“运行”按钮在PyCharm中启动myProxy

但是,当我尝试从控制台运行myProxy.py时,我得到了ModuleNotFoundError: No module named 'SMTP' 当我从每个受影响的文件中删除SMTP部分时,可以从控制台运行它。它甚至可以在PyCharm上运行。但是,由于某些原因,PyCharm确实将我的进口商品强调为假。

这里的错误到底是什么?如何解决该错误,以便我在PyCharm中没有错误并且可以在pycharm和控制台上运行我的程序?

1 个答案:

答案 0 :(得分:1)

您可以尝试省略SMTP,而只是将Classes标记为PyCharm中的源根,方法是:右键单击Classes目录>将目录标记为>源根。