使用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和控制台上运行我的程序?
SMTP
,而只需在[PyCharm]中将Classes
标记为Source Root,方法是:右键单击Classes
目录>将目录标记为> Sources Root。