当我尝试运行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
答案 0 :(得分:26)
来自this message on google groups:
您的蜘蛛模块的名称与scrapy项目模块的名称相同,因此 python试图导入相对于byub.py spider的项目。
您正面临着对python导入的共同遗憾,请参阅 http://www.python.org/dev/peps/pep-0328
快速修复:
from __future__ import absolute_import
。答案 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
。