Scrapy:ImportError:没有名为items的模块

时间:2012-05-13 09:22:36

标签: python scrapy

当我尝试运行scrapy时,我收到此错误ImportError:没有名为items的模块

我刚刚在items.py中添加了我要抓取的内容列表,并在spider.py中我从spider.items导入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

6 个答案:

答案 0 :(得分:26)

来自this message on google groups

您的蜘蛛模块的名称与scrapy项目模块的名称相同,因此 python试图导入相对于byub.py spider的项目。

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

快速修复:

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

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

但考虑到*.pyc文件扮演的角色类似缓存*.pyc文件 >。

答案 3 :(得分:1)

抱歉为尸检。尝试放入文件 ./spider/__init__.py

 import items

答案 4 :(得分:0)

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

class ProjectnamegoeshereSpider(BaseSpider):

答案 5 :(得分:0)

如果不重命名任何文件,请将from spider.items import SpiderItem更改为from .. import items,并在代码中将该项目称为items.SpiderItem