Jak debugować programy Pythona w emacs?Debugowanie programów Pythona w emacs
używam python-mode.el
uzyskać odniesienie jak import WPB; pdb.set_trace();
, ale nie wiesz, jak z niego korzystać.
Jak debugować programy Pythona w emacs?Debugowanie programów Pythona w emacs
używam python-mode.el
uzyskać odniesienie jak import WPB; pdb.set_trace();
, ale nie wiesz, jak z niego korzystać.
Wpisz M-x cd
, aby zmienić katalog na lokalizację programu, który chcesz debugować. Wpisz M-x pdb
. Zostaniesz poproszony o podanie Run pdb (like this): pdb
. Wprowadź nazwę programu (np. test.py
).
Po pytaniu wpisz help
, aby dowiedzieć się, jak korzystać z pdb.
Alternatywnie, można umieścić
import pdb
pdb.set_trace()
bezpośrednio w programie (np test.py
). Teraz wpisz M-x shell
, aby uzyskać monit powłoki. Po uruchomieniu programu zostaniesz zrzucony na pdb
w miejscu, gdzie zostanie wykonany pdb.set_trace()
.
Dla mnie, musiałem zastąpić domyślny "PDB" z
python -m pdb myscript.py
The realgud
pakietu (dostępny od MELPA) obsługuje PDB (wśród gazillion innych debugerów) i ma wiele miłe cechy, które PDB Emac nie ma.
Najbardziej podoba mi się tryb shortkeys. Po rozpoczęciu debugowania programu możesz nacisnąć przycisk n
, s
, itd. Bezpośrednio w oknie źródłowym, zamiast wpisywać te polecenia w buforze PDB. Obsługuje również klawisze funkcyjne Visual-Studio z klawiszami funkcyjnymi (f10
, f11
, f5
itd.).
Po zainstalowaniu RealGUD, musisz uruchomić M-x load-feature realgud
, aby go załadować, i możesz uruchomić pdb
z M-x realgud:pdb
.
Należy dodać, że mam mały konflikt interesów. Znalazłem pakiet tak zgrabny, że zacząłem go hakować, a teraz stałem się współ-opiekunem. –
Używanie pdbtrack (poprzez powłokę M-x) jest prawdopodobnie lepszym rozwiązaniem. W ten sposób łatwiej kontrolować katalogi i środowiska. –
@matt z Mx pdb możesz ustawić punkty przerwania w plikach źródłowych, a kursor pokaże aktualną pozycję wykonania: http://twistedmatrix.com/documents/current/core/howto/debug-with-emacs .html –
Samouczek graficzny można znaleźć tutaj: http://sunnyeves.blogspot.com/2011/04/debugging-python-on-emacs-ide.html – gt6989b