web-dev-qa-db-fra.com

Scrapy: ImportError: Aucun élément nommé de module

Lorsque j'essaie d'exécuter un scrap, j'obtiens cette erreur ImportError: aucun élément nommé de module

Je viens d'ajouter dans items.py la liste des choses que je veux gratter et dans le spider.py, j'ai importé la classe à partir de spider.items import SpiderItem

Ne sais pas pourquoi ce n'est pas le charger ...

La mise en paquet est ...

./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
16
jsjc

De ce message sur les groupes Google :

Votre module araignée porte le même nom que votre module de projet, donc Python tente d'importer des éléments relatifs à byub.py araignée.

Vous faites face à un regret commun des importations python, voir http://www.python.org/dev/peps/pep-0328

correctifs rapides:

  • renommez votre module spider en byub_org.py ou similaire.
  • ou utilisez from __future__ import absolute_import dans araignée byub.py.
  • ou renommez votre projet en quelque chose comme byubbot.
26
Nick Craig-Wood

Je suis arrivé à faire face à ce problème parce que mon nom d'araignée est le même avec le projet scrapy.

Il suffit de renommer le nom de l'araignée.

4
hahakubile

C'est une bonne solution pour renommer votre module d'araignée.

Mais n'oubliez pas de supprimer le fichier *.pyc associé après avoir renommé , étant donné que le fichier *.pyc joue un rôle tel que cache

2
Haley Zhu

Désolé pour le nécropostage. Essayez de mettre dans le fichier ./spider/__init__.py

cette

 import items
1
while1pass

Sans renommer aucun fichier, remplacez from spider.items import SpiderItem par from .. import items et appelez-le items.SpiderItem dans votre code.

0
Fan Jin

Il manque la ligne suivante après vos instructions d'importation dans votre fichier spider.py.

classe ProjectnamegoeshereSpider (BaseSpider):

0
Theodis Butler