如何配置PyCharm使用内部目录作为模块根?

时间:2018-04-10 14:15:46

标签: python scrapy pycharm

我有以下结构(这是scrapy的标准结构):

root/
    .git/
    scrapers/
        scrapers/
            __init__.py
            pipelines.py
            settings.py
        scrapy.cfg
    .gitignore

pipelines.py我正在执行以下导入:

from scrapers.settings import API_URL, API_KEY

代码工作得很好!但是,PyCharm将此标记为错误,并显示消息Cannot find reference 'settings' in 'imported module scrapers'。它认为外部scrapers/目录是模块根目录。它会错误地表明正确的导入是:

from scrappers.scrapers.settings import API_URL, API_KEY

我尝试将内部scrapers/目录标记为"来源root"它没有帮助。如何配置PyCharm以假设此代码的根位于内部scrapers/目录中?

1 个答案:

答案 0 :(得分:2)

从技术上讲,内部scrapers目录是一个python包,请参阅Packages

为了让Pycharm能够找到你需要将其 dir - 外部scrapers目录 - 配置为Sources Root(即dir)的软件包在哪里找到包裹和模块)。来自Content root types

  

这些根包含实际的源文件和资源。 PyCharm   使用源根作为解决导入的起点。