2012-05-13 11 views
14

Cuando trato de ejecutar scrapy consigo este error ImportError: Copias módulo denominadoScrapy: ImportError: Copias módulo denominado

acabo añadido en items.py la lista de cosas que quiero para raspar y de la araña .py he importado la clase con la importación de spider.items SpiderItem

no sé por qué no es cargarlo ...

presentación de embalaje es ...

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

su senciancia media no tiene sentido. probablemente tenga un problema con las importaciones (relativas). debe publicar el diseño de su paquete, entonces quizás alguien pueda ayudarlo. – mata

Respuesta

24

desde this message on google groups:

Su módulo de araña recibe el mismo nombre que su módulo de proyecto de scrapy, por lo que python está tratando de importar elementos relativos a byub.py spider.

Estás frente a un arrepentimiento común de las importaciones de pitón, ver http://www.python.org/dev/peps/pep-0328

quicks fija:

  • cambiar el nombre del módulo de araña para byub_org.py o similar.
  • o use desde __future__ import absolute_import en la araña byub.py.
  • o cambie el nombre de su proyecto a algo así como byubbot.
+1

Gracias Nick, pero ya lo he encontrado y he tratado de resolverlo ... y ese no era el problema o al menos no estoy obteniendo una solución ... – jsjc

2

Pasé a enfrentar este problema porque el nombre de mi araña es el mismo que el del proyecto de scrapy.

Simplemente cambie el nombre de la araña lo hará.

+0

No he resuelto mi problema. – AnovaConsultancy

0

Falta la siguiente línea después de sus instrucciones de importación en su archivo spider.py.

ProjectnamegoeshereSpider clase (BaseSpider):

0

Sin cambiar el nombre de los archivos, cambiar from spider.items import SpiderItem a from .. import items y se refieren al artículo como items.SpiderItem en el código.

1

Lo siento por necroposting. Trate de poner en fila ./spider/__init__.py

que

import items 
1

Es una buena solución para cambiar el nombre del módulo de araña.

Pero no se olvide de eliminar el archivo relacionado *.pyc después de cambiar el nombre de, teniendo en cuenta que el archivo *.pyc juega un papel como caché.

Cuestiones relacionadas