#python #scrapy
#python #scrapy
Вопрос:
обрывочная библиотека в /usr/lib/python2.7/site-packages/scrapy
каталог моего проекта:
.../projects/scrapy
.../projects/parser_module
....../projects/parser_module/parser
....../projects/parser_module/parser
........../projects/parser_module/parser/spiders/.....
........../projects/parser_module/parser/<files etc>
....../projects/parser_module/scrapy.cfg
В каталоге .../projects/parser_module/
я устанавливаю команду scrapy crawl parser
и получаю результат:
Traceback (most recent call last):
File "/usr/bin/scrapy", line 4, in <module>
execute()
File "/usr/lib/python2.7/site-packages/scrapy/cmdline.py", line 109, in execute
settings = get_project_settings()
File "/usr/lib/python2.7/site-packages/scrapy/utils/project.py", line 60, in get_project_settings
settings.setmodule(settings_module_path, priority='project')
File "/usr/lib/python2.7/site-packages/scrapy/settings/__init__.py", line 108, in setmodule
module = import_module(module)
File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named settings
Не могли бы вы, пожалуйста, сказать мне, как решить проблему?
Ответ №1:
чтобы избежать такой проблемы, создайте папку проекта с scrapy startproject parser_module
теперь, чтобы устранить вашу проблему, вам либо нужно начать все сначала, либо создать фиктивный проект с scrapy startproject
для копирования setting.py из. Тогда, возможно, в следующей ошибке вы обнаружите другой отсутствующий файл в этой папке.
Это типичная структура проекта scrapy.
.
├── scrapy.cfg
└── project_name
├── __init__.py
├── items.py
├── settings.py
└── spiders
└── __init__.py
spider.py
Комментарии:
1. @taifun, вы имеете в виду, что исправление пользователей не является лучшим решением, чем исправление кода?
2. спасибо @Frederic Bazin. Теперь я понимаю, что нужно создать проект scrapy с правильным использованием command. В противном случае, скорее всего, у вас могут возникнуть проблемы, особенно проблемы, связанные с конфигурацией проекта
3. К сожалению, в документации, создающей проект с помощью
startproject
команды, все еще не упоминается в качестве первого, что нужно сделать. Вот почему у новых пользователей возникают проблемы, так как в «Первом взгляде» и «руководстве по установке» не упоминаетсяstartproject
команда. Это упоминается только в «Инструменте командной строки» в разделе «Основные понятия». Конечно, это моя вина, что я не заглядывал туда раньше, но все же об этом следует упомянуть в самом начале.
Ответ №2:
Чтобы решить проблему «Ошибка импорта: нет модуля с именем *.settings», попробуйте изменить название проекта и связанные с ним настройки в scrapy.cfg
Ответ №3:
У меня была такая же проблема. Решаемая путем удаления файла init.pyc, который присутствовал непосредственно внутри каталога проекта scrapy
Ответ №4:
Я обнаружил проблему, далее решаем:
Название моего проекта: superproject
Я получил проблему «Ошибка импорта: нет модуля с именем project»
В моей settings.py
строке was ROTATING_PROXY_BAN_POLICY = 'project.policy.BanPolicy'
.
Внимание! Название проектов отличается. В settings.py
ваших именах должно быть как superproject
и зависимость.
Если переименовать ROTATING_PROXY_BAN_POLICY = 'project.policy.BanPolicy'
В => ROTATING_PROXY_BAN_POLICY = 'superproject.policy.BanPolicy'
, ТО prolem решал.