Я работаю над Scrapy 0.20 с Python 2.7. Я обнаружил, что в PyCharm есть хороший отладчик Python. Я хочу протестировать на нем своих пауков Scrapy. Кто-нибудь знает, как это сделать, пожалуйста?
Что я пробовал
Собственно я пытался запустить паука как скрипт. В результате я построил этот сценарий. Затем я попытался добавить свой проект Scrapy в PyCharm в виде такой модели:File->Setting->Project structure->Add content root.
Но я не знаю, что мне еще делать
ImportError: No module named settings
Я проверил, что рабочий каталог - это каталог проекта. Он используется в проекте Django. Кто-нибудь еще сталкивался с этой проблемой?Working directory
no active project, Unknown command: crawl, Use "scrapy" to see available commands, Process finished with exit code 2
Вам просто нужно это сделать.
Создайте файл Python в папке искателя вашего проекта. Я использовал main.py.
Внутри вашего main.py поместите этот код ниже.
И вам необходимо создать «конфигурацию запуска» для запуска main.py.
При этом, если вы поместите точку останова в свой код, он остановится на этом.
источник
В 2018.1 это стало намного проще. Теперь вы можете выбрать
Module name
в своем проектеRun/Debug Configuration
. Установите это значениеscrapy.cmdline
иWorking directory
значение в корневой каталог проекта scrapy (тот, который находитсяsettings.py
в нем).Вот так:
Теперь вы можете добавлять точки останова для отладки кода.
источник
Я запускаю scrapy в virtualenv с Python 3.5.0 и устанавливаю параметр «script», чтобы
/path_to_project_env/env/bin/scrapy
решить эту проблему для меня.источник
project/crawler/crawler
, то есть каталога, в котором он находится__init__.py
.Идея intellij тоже работает.
создать main.py :
показать ниже:
источник
Чтобы добавить немного к принятому ответу, почти через час я обнаружил, что мне нужно выбрать правильную конфигурацию запуска из раскрывающегося списка (рядом с центром панели инструментов значков), затем нажать кнопку «Отладка», чтобы заставить ее работать. Надеюсь это поможет!
источник
Я также использую PyCharm, но не использую его встроенные функции отладки.
Для отладки использую
ipdb
. Я установил сочетание клавиш для вставкиimport ipdb; ipdb.set_trace()
в любую строку, в которой я хочу, чтобы сработала точка останова.Затем я могу ввести,
n
чтобы выполнить следующий оператор,s
войти в функцию, ввести любое имя объекта, чтобы увидеть его значение, изменить среду выполнения, ввести,c
чтобы продолжить выполнение ...Это очень гибко, работает в средах, отличных от PyCharm, где вы не контролируете среду выполнения.
Просто введите свою виртуальную среду
pip install ipdb
и поместитеimport ipdb; ipdb.set_trace()
в строку, где вы хотите приостановить выполнение.источник
Согласно документации https://doc.scrapy.org/en/latest/topics/practices.html
источник
Я использую этот простой скрипт:
источник
Расширяя версию ответа @ Rodrigo, я добавил этот скрипт, и теперь я могу установить имя паука из конфигурации вместо изменения строки.
источник