【问题标题】:Scrapy: ImportError: No module named itemsScrapy:ImportError:没有名为项目的模块
【发布时间】:2012-05-13 09:22:36
【问题描述】:

当我尝试运行 scrapy 时,我收到此错误 ImportError: No module named items

我刚刚在 items.py 中添加了我想要抓取的东西的列表,在 spider.py 中我已经使用 from spider.items import SpiderItem 导入了该类

不知道为什么加载不出来...

包装布局是...

./spider
./spider/pipelines.py
./spider/settings.py
./spider/spiders
./spider/spiders/spider_spider.py
./spider/spiders/test.py
./spider/spiders/__init__.py
./spider/middlewares.py
./spider/__init__.py
./spider/items.py

【问题讨论】:

  • 你的中间句子没有意义。您可能对(相对)进口有问题。您应该发布您的包裹布局,然后也许有人可以帮助您。

标签: python scrapy


【解决方案1】:

来自this message on google groups

你的蜘蛛模块和你的scrapy项目模块命名相同,所以 python 正在尝试导入与 byub.py 蜘蛛相关的项目。

您正面临 python 导入的常见遗憾,请参阅 http://www.python.org/dev/peps/pep-0328

快速修复:

  • 将您的蜘蛛模块重命名为 byub_org.py 或类似名称。
  • 或在 byub.py 蜘蛛中使用 from __future__ import absolute_import
  • 或将您的项目重命名为 byubbot 之类的名称。

【讨论】:

  • 谢谢尼克,但我已经找到并试图解决它......这不是问题,或者至少我没有得到解决方案......
【解决方案2】:

我碰巧遇到了这个问题,因为我的蜘蛛名称与scrapy项目相同。

只需重命名蜘蛛名称即可。

【讨论】:

  • 遇到了同样的问题,我将蜘蛛名称文件重命名为与项目不同的文件,它可以工作
【解决方案3】:

在不重命名任何文件的情况下,将from spider.items import SpiderItem 更改为from .. import items 并在您的代码中将该项目称为items.SpiderItem

【讨论】:

    【解决方案4】:

    重命名蜘蛛模块是一个很好的解决方案。

    但是不要忘记在重命名后删除相关的*.pyc文件,考虑到*.pyc文件的作用类似于缓存

    【讨论】:

      【解决方案5】:

      很抱歉发布了尸体。尝试放入文件 ./spider/__init__.py

      那个

       import items
      

      【讨论】:

        【解决方案6】:

        您在 spider.py 文件中的 import 语句之后缺少以下行。

        类项目名称goeshereSpider(BaseSpider):

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-02
          • 2019-02-12
          相关资源
          最近更新 更多