我的应用程序结构如下:
api/
|_app/
|_ __init__.py
|_conf/
|_resources/
|_ __init__.py
|_controller.py
|_dao/
|_ __init__.py
|_thing_dao.py
|_etc...
我想在get_thing_by_id
内的thing_dao.py
中使用controller.py
函数。在PyCharm中,我开始输入get_thing_by_id
,它会提示我自动导入该函数。问题是它只是from thing_dao import get_thing_by_id
但是当我尝试运行应用程序(Flask)时,我得到ImportError: No module named 'thing_dao'
。我最终要做的是相对导入或从模块级from app.dao.thing_dao import get_thing_by_id
开始。
我怀疑这个问题与我的项目结构有关,而不是PyCharm错误。有没有办法构建我的项目以更好地暗示PyCharm如何进口?我已经查看了自动导入和PyCharm的配置选项,他们非常渺茫,所以我怀疑我做错了什么。
答案 0 :(得分:3)
我发现我的目录被标记为" Source Root"。取消标记它们使导入正常工作。