如何通知PyCharm自定义模块的位置?

And*_*ndy 6 python pycharm

我有一个工作中的应用程序,其设置具有以下结构.

/project_root
    /applications
        /app1
            __init__.py
        /app2
            __init__.py
        ...
        /appN
    /pkg
        /database
            __init__.py
        /toolbox
            __init__.py
        ...
        __init__.py
    __init__.py
    main_framework.py
Run Code Online (Sandbox Code Playgroud)

我正在调查使用PyCharm(社区版),而不是Eclipse的PyDev工具.在__init__.pyapp1我看起来像这样的一个import语句:

import pkg.database
Run Code Online (Sandbox Code Playgroud)

PyCharm通过no module named pkg消息抱怨导入.

PyCharm错误 (点击查看大图)

但是,由于框架的构建方式,系统运行良好.每个人都appN知道pkg目录.如何告知PyCharm我在pkg目录中有自定义构建的模块,以便这些警告停止?

我正在测试PyCharm 4.0.3社区版.

我尝试了几件事,感谢下面的评论,但没有帮助:

  • 在"项目结构"对话框中,project_root被列为对话框右侧"内容根"下的唯一目录.我已经添加了pkg目录,以便它也被列出.这没有效果.
  • 在问题的初始版本中,我__init__.pypkg显示结构时错过了.这个文件确实存在.

And*_*ndy 18

解决方案是两个步骤:

  1. pkg目录添加为源根目录.通过选择File- > Settings- > Project- >(选择项目) - > Project Structure然后选择pkg目录并单击Sources按钮添加来完成此操作.单击确定.
  2. 然后选择File- > Invalidate Caches / Restart- >Invalidate and Restart

等待PyCharm重新启动并重建它的缓存/扫描索引.现在,该pkg目录被检测为源根,我的错误消失了.