21

当我尝试运行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
4

6 回答 6

28

来自谷歌群组的这条消息

您的蜘蛛模块与您的 scrapy 项目模块命名相同,因此 python 正在尝试导入与 byub.py 蜘蛛相关的项目。

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

快速修复:

  • 将您的蜘蛛模块重命名为 byub_org.py 或类似名称。
  • from __future__ import absolute_import在 byub.py 蜘蛛中使用。
  • 或将您的项目重命名为 byubbot 之类的名称。
于 2012-05-13T10:01:45.993 回答
4

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

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

于 2014-01-15T10:35:12.033 回答
2

在不重命名任何文件的情况下,更改from spider.items import SpiderItemfrom .. import items引用items.SpiderItem代码中的项目。

于 2014-02-24T09:00:49.140 回答
2

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

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

于 2017-06-13T06:48:25.137 回答
1

很抱歉发布了墓志铭。尝试放入文件 ./spider/__init__.py

 import items
于 2016-05-15T11:37:44.157 回答
0

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

类项目名称goeshereSpider(BaseSpider):

于 2014-01-15T19:57:20.613 回答