从脚本运行零件:未找到模块错误-ProjectName.Items不是包装



我尝试像文档中所说的那样运行多个爬网。脚本通过调用scrapy crawl crawler

运行

现在通过python crawler.py调用它,我会收到以下错误:

来自crawler.items导入linkItem

modulenotfounderror:没有名为" crawler.items"的模块;"爬行者"不是包装

import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.crawler import CrawlerProcess
from crawler.items import LinkItem
from crawler.settings import DB_CREDS

有人知道如何处理吗?

我的项目被命名为Crawler。这可能是一个问题吗?

层次结构:

Crawler
|-crawler
|  |-__pycache__
|  | |-...
|  |-spiders
|  | |-__pycache__
|  | |-__init__.py
|  | |-crawler.py
|  |-__init__.py
|  |-items.py
|  |-middlewares.py
|  |-pipelines.py
|  |-settings.py
|-scrapy.cfg

我认为这是一种python路径问题。您可以通过python解释器而不是Scrapy运行脚本,因此必须确保Python知道您的软件包在哪里。如果您以Scrapy命令运行,那么scrapy将通过scrapy.cfg照顾它。

最简单的方法是将您的项目路径附加到PYTHONPATH。例如export PYTHONPATH=YOUR_PROJECT_PATH:$PYTHONPATH。您可能需要将其添加到.bashrc文件中。

还有其他解决方案,例如,遵循包装的分布,将您的项目安装到站点包装python库中。

谢谢。

相关内容

最新更新