2012-05-13 71 views
14

当我尝试运行scrapy我得到这个错误导入错误:没有模块命名项Scrapy:导入错误:没有模块命名项

我只是在items.py添加的东西,我想凑和蜘蛛列表的.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

你的中等收入毫无意义。你可能有(相对)导入问题。你应该发布你的包装布局,那么也许有人可以帮助你。 – mata

回答

24

this message on google groups

您的蜘蛛模块与您的scrapy项目模块命名相同,所以 python试图导入相对于byub.py蜘蛛的项目。

你正面临着蟒蛇进口的共同遗憾,看到 http://www.python.org/dev/peps/pep-0328

尽皆修复:

  • 重命名你的蜘蛛模块byub_org.py或相似。
  • 或从__future__ import absolute_import在byub.py蜘蛛中使用。
  • 或将您的项目重命名为像byubbot。
+1

感谢尼克,但我已经发现,并试图解决它......并没有这个问题,或者至少我没有得到解决方案... – jsjc

2

我碰巧遇到这个问题,因为我的蜘蛛名字和scrapy项目一样。

只需重新命名蜘蛛名称就可以了。

+0

没有解决我的问题。 – AnovaConsultancy

0

您在spider.py文件中导入语句后缺少以下行。

类ProjectnamegoeshereSpider(BaseSpider):

0

不重命名的文件,更改from spider.items import SpiderItemfrom .. import items并参考项目作为items.SpiderItem在你的代码。

1

抱歉。尽量放在文件 ./spider/__init__.py

import items 
1

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

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

相关问题