【问题标题】:How do I inform PyCharm of the location of custom modules?如何通知 PyCharm 自定义模块的位置?
【发布时间】:2015-01-05 22:49:08
【问题描述】:

我有一个使用以下结构设置的应用程序。

/project_root
    /applications
        /app1
            __init__.py
        /app2
            __init__.py
        ...
        /appN
    /pkg
        /database
            __init__.py
        /toolbox
            __init__.py
        ...
        __init__.py
    __init__.py
    main_framework.py

我正在研究使用 PyCharm(社区版),而不是 Eclipse 的 PyDev 工具。在__init__.pyapp1 中,我有一个如下所示的导入语句:

import pkg.database

PyCharm 使用 no module named pkg 消息抱怨导入。

(点击查看大图)

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

我正在测试 PyCharm 4.0.3 社区版。

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

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

【问题讨论】:

  • 您是否已将project_root 设为项目的源根目录?
  • 尝试使用project_root.pkg.database,即使我认为它不起作用。第二种选择,尝试将pkg 也设为源根目录,将其标记为Source。如果可行,请告诉我,我会将其发布为答案。我认为第二个应该可以。
  • 第二个选项不起作用(我将其设置为Source,然后重新启动了PyCharm)。如果没有其他内容,我会考虑第一个选项,因为我不想在不需要的情况下修改所有 appN 脚本。
  • @Matthias 可能是……

标签: python pycharm


【解决方案1】:

解决方案分为两步:

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

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

【讨论】:

  • 这对我有用,虽然在 Mac 上有些东西的位置不同。
猜你喜欢
  • 2011-12-03
  • 2017-03-10
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
  • 2018-03-16
相关资源
最近更新 更多