Получение ModuleNotFoundError при попытке загрузить настройки Scrapy из переменной среды - PullRequest
0 голосов
/ 28 февраля 2020

Я запускаю Scrapy с проектом Django и пытаюсь определить настройки Scrapy за пределами проекта Scrapy. Я использую get_project_settings(), который ищет переменную окружения SCRAPY_SETTINGS_MODULE. Мне удалось установить значение scraper.crawling.crawling.settings, но при запуске get_project_settings() мне выдается сообщение об ошибке:

ModuleNotFoundError: No module named crawling.

Это правильно, поскольку crawling является каталог, а не модуль, settings, который я пытаюсь направить. Кто-нибудь может мне помочь так, что get_project_settings правильно найдет модуль settings?

Ниже приведена структура папок, которую я использую:

├───django-scraper
|   ├───django_scraper
|   |   ├───settings.py
|   │   └───__init__.py
|   ├───scraper
|   │   ├───crawling
|   │   │   └───crawling
|   │   │       ├───spiders
|   │   │       │   └───__init__.py
|   |   |       ├───settings.py   
|   │   │       └───__init__.py
|   │   ├───migrations
|   │   │   └───__init__.py
|   │   ├───templates
|   │   │   └───scraper
|   │   └───__init__.py

Следующее в моем Django settings.py, поэтому это устанавливается при запуске сервера:

os.environ['SCRAPY_SETTINGS_MODULE'] = 'scraper.crawling.crawling.settings'

get_project_settings() вызывается из crawler_process.py, хотя я не думаю, что это местоположение проблема, так как она все равно просматривает переменную окружения.

Мой sys.path уже содержит 'C:\\Users\\georg\\Django\\django-scraper', и он, похоже, получает доступ к scraping в порядке, но затем пытается принять scraper.crawling в качестве модуля.

Надеюсь, достаточно информации - это мой первый пост, поэтому дайте мне знать, если что-нибудь еще понадобится!

1 Ответ

0 голосов
/ 28 февраля 2020

Я думаю, вам нужно добавить __init__.py файл на каждом уровне папки , поэтому python обрабатывает его как модуль, и django сможет импортировать его.

├───django-scraper
|   ├───django_scraper
|   |   └───settings.py
|   │
|   ├───__init__.py
|   ├───scraper
|   │   ├───crawling
|   │   │   └───__init__.py
|   │   │   └───crawling
|   │   │       ├───__init__.py
|   │   │       ├───spiders
|   │   │       ├───settings.py
|   |   |       └───crawler_process.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...