使用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和控制台上运行我的程序?
答案 0 :(得分:1)
您可以尝试省略SMTP
,而只是将Classes
标记为PyCharm中的源根,方法是:右键单击Classes
目录>将目录标记为>源根。