2015-12-11 41 views
1

我有一个应用程序的结构,像这样:PyCharm自动导入无法导入正确

api/ 
|_app/ 
    |_ __init__.py 
    |_conf/ 
    |_resources/ 
     |_ __init__.py 
     |_controller.py 
    |_dao/ 
     |_ __init__.py 
     |_thing_dao.py 
    |_etc... 

我想使用的功能get_thing_by_idthing_dao.pycontroller.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的配置选项,它们非常纤薄,所以我怀疑我做错了什么。

回答

1

我发现我有我的目录标记为“源根”。取消标记可以使进口正常工作。