我有以下结构(这是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/
目录中?
答案 0 :(得分:2)
从技术上讲,内部scrapers
目录是一个python包,请参阅Packages。
为了让Pycharm能够找到你需要将其父 dir - 外部scrapers
目录 - 配置为Sources Root
(即dir)的软件包在哪里找到包裹和模块)。来自Content root types:
这些根包含实际的源文件和资源。 PyCharm 使用源根作为解决导入的起点。