Scrapy: ImportError: нет модулей с именами элементов

Когда я пытаюсь запустить scrapy, я получаю эту ошибку ImportError: нет модуля с именем items

Я просто добавил в items.py список вещей, которые хочу очистить, и в spider.py Я импортировал класс из 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

Ответы

Ответ 1

От это сообщение в группах google:

Ваш паук-модуль назван так же, как и ваш проектный модуль проекта, поэтому python пытается импортировать элементы по сравнению с byub.py spider.

Вы столкнулись с общим сожалением об импорте python, см. http://www.python.org/dev/peps/pep-0328

быстрые исправления:

  • переименуйте свой паук-модуль в byub_org.py или аналогичный.
  • или использовать с __future__ import absolute_import в spub-сервере byub.py.
  • или переименуйте свой проект на что-то вроде byubbot.

Ответ 2

Мне посчастливилось столкнуться с этой проблемой, потому что мое имя паук совпадает с проектом scrapy.

Просто переименуйте имя паука, сделайте это.

Ответ 3

Это хорошее решение для переименования вашего паук-модуля.

Но не забудьте удалить связанный файл *.pyc после переименования, считая, что файл *.pyc играет роль как кеш.

Ответ 4

Вам не хватает следующей строки после операторов импорта в файле spider.py.

class ProjectnamegoeshereSpider (BaseSpider):

Ответ 5

Без переименования каких-либо файлов измените from spider.items import SpiderItem на from .. import items и обратитесь к элементу как items.SpiderItem в свой код.

Ответ 6

Извините за некропостинг. Попробуйте добавить файл ./spider/__init__.py

что

 import items