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