Pracuję nad Scrapy 0.20 z Pythonem 2.7. Odkryłem, że PyCharm ma dobry debugger Pythona. Chcę przetestować moje pająki Scrapy przy jego użyciu. Czy ktoś wie, jak to zrobić, proszę?
Co próbowałem
Właściwie to próbowałem uruchomić pająka jako skrypt. W rezultacie zbudowałem ten skrypt. Następnie próbowałem dodać mój projekt Scrapy do PyCharm jako model w następujący sposób:File->Setting->Project structure->Add content root.
Ale nie wiem, co jeszcze mam zrobić
ImportError: No module named settings
Sprawdziłem, czy katalog roboczy to katalog projektu. Jest używany w projekcie Django. Czy ktoś jeszcze natknął się na ten problem?Working directory
, w przeciwnym razie wystąpi błądno active project, Unknown command: crawl, Use "scrapy" to see available commands, Process finished with exit code 2
Po prostu musisz to zrobić.
Utwórz plik Python w folderze robota w swoim projekcie. Użyłem main.py.
Wewnątrz swojego main.py umieść poniższy kod.
Aby uruchomić plik main.py, musisz utworzyć „Uruchom konfigurację”.
Robiąc to, jeśli umieścisz punkt przerwania w swoim kodzie, zatrzyma się na tym.
źródło
Od 2018.1 stało się to znacznie łatwiejsze. Możesz teraz wybrać
Module name
w swoim projekcieRun/Debug Configuration
. Ustaw toscrapy.cmdline
i naWorking directory
katalog główny projektu scrapy (tego, który jestsettings.py
w nim).Tak jak to:
Teraz możesz dodać punkty przerwania, aby debugować swój kod.
źródło
Uruchamiam scrapy w virtualenv z Pythonem 3.5.0 i ustawiam parametr „script”, aby
/path_to_project_env/env/bin/scrapy
rozwiązać problem.źródło
project/crawler/crawler
, tj. katalog zawierający__init__.py
.pomysł intellij również działa.
utwórz main.py :
pokaż poniżej:
źródło
Aby dodać trochę do zaakceptowanej odpowiedzi, po prawie godzinie stwierdziłem, że muszę wybrać poprawną konfigurację Run Configuration z rozwijanej listy (w pobliżu środka paska narzędzi ikony), a następnie kliknąć przycisk Debug, aby uruchomić. Mam nadzieję że to pomoże!
źródło
Używam również PyCharm, ale nie używam jego wbudowanych funkcji debugowania.
Do debugowania używam
ipdb
. Skonfigurowałem skrót klawiaturowy do wstawianiaimport ipdb; ipdb.set_trace()
w dowolnym wierszu, w którym chcę, aby pojawił się punkt przerwania.Następnie mogę wpisać,
n
aby wykonać następną instrukcję,s
wejść w funkcję, wpisać dowolną nazwę obiektu, aby zobaczyć jego wartość, zmienić środowisko wykonywania, typ,c
aby kontynuować wykonywanie ...Jest to bardzo elastyczne, działa w środowiskach innych niż PyCharm, w których nie kontrolujesz środowiska wykonawczego.
Po prostu wpisz swoje wirtualne środowisko
pip install ipdb
i umieśćimport ipdb; ipdb.set_trace()
w linii, w której chcesz wstrzymać wykonanie.źródło
Zgodnie z dokumentacją https://doc.scrapy.org/en/latest/topics/practices.html
źródło
Używam tego prostego skryptu:
źródło
Rozszerzając wersję odpowiedzi @ Rodrigo dodałem ten skrypt i teraz mogę ustawić nazwę pająka z konfiguracji zamiast zmieniać ją w ciągu.
źródło