2011-09-15 15 views
12

Używam Notepad ++ do pisania i uruchamiania skryptów w języku Python. Jest świetnym edytorem tekstu, z wyjątkiem debugowania. Czy istnieje sposób na przejrzenie kodu, wykorzystanie punktów przerwania, wyświetl wartości zmiennych itp. W Notepad ++, tak jak w Visual Studio?Debugowanie kodu Pythona w Notatniku ++

Odpowiedz

10

czy taki plug-in istnieć? Nie żebym o tym wiedział. Całkowicie zgadzam się z qor72 w tej notatce.

Czy można utworzyć taką wtyczkę/funkcjonalność? Możliwie.

Po szybkim kopaniu znalazłem wtyczkę, która wygląda obiecująco, Python Script. W skrócie pozwala to na uruchamianie skryptów Pythona, które mają dostęp do modułów NPP (menu plików itp.) Oraz , które pojawiają się w celu umożliwienia dostępu do takich rzeczy jak znaczniki na stronach.

Aby dokonać takiego wyczynu Widziałam zadanie bycia włamał się do kilku dużych bloków (czuję się nowy projekt open-source nadchodzi ...)

  • Korzystanie Python Script, jak zintegrować python debugger(PDB) wymienione przez Shashi.
  • Korzystając z metod Scintilla, dodaj połączenia zwrotne, w których umieszczony jest znacznik NPP.
  • Przekierowanie wyjść PDB i przetworzenie ich w celu wskazania miejsca zatrzymania pliku (ponownie za pomocą metod Scintilla).
  • W nowo utworzonym punkcie przerwania i za pomocą PDB należy określić wszystkie zmienne w bieżącej przestrzeni nazw.Wziąć te informacje i zrzucić go w oknie CMD, albo jeśli chcesz uzyskać fantazyjny niektóre GUI stworzony z Tk/wxPython

Zamykanie Thoughts
Chociaż myślę, że to możliwe, aby stworzyć taką wtyczkę, ja byłoby dość przedsięwzięciem. Wzdłuż tej linii, może lepiej byłoby znaleźć inny edytor, który już to wbudował i po prostu tworzyć makra (lub jakkolwiek to IDE nazywa), aby dodać rzeczy, które najbardziej lubisz w NPP.

Proszę zauważyć, że jestem codziennym użytkownikiem elektrowni jądrowej i byłem przez wiele lat, więc wyzywająco rozumiem, dlaczego chciałbyś, aby funkcjonalnie dodano ją do elektrowni jądrowej. Jedną z moich ulubionych rzeczy na temat NPP jest szybkość, z jaką otwiera się i przeszukuje pliki ... przejście do nadętego IDE, IMO, nie byłoby dla mnie tego warte.

Mój obecny przepływ pracy polega na wykonaniu całej mojej edycji w NPP i wystarczy kliknąć dwukrotnie, aby uruchomić moduły. Jeśli zawiedzie lub zniknie w chwastach, uruchomię narzędzie IDLE w celu debugowania.

8

Mam nadzieję, że ktoś mi powie, że się mylę (chciałbym mieć tę funkcję w Notepad ++), ale Notepad ++ został zaprojektowany jako programista, a nie IDE. Mimo że ma wiele fajnych funkcji, ten poziom debugowania nie jest częścią podstawowego narzędzia.

Również nie widać niczego w npp-plugins.

5

myślę python debugger jest najlepszym rozwiązaniem, jeśli wydawca nie dostarcza siłownia :)

Quick guide:

from pdb import set_trace as bp 

code 
code 
bp() 
code 
code 

W wierszu (Pdb) wprowadź s do kroku, p foo wydrukować foo i c do kontynuuj wykonywanie kodu aż do uderzenia w inny punkt przerwania.

+0

Zobacz http://stackoverflow.com/questions/6980749/simpler-way- to-put-pdb-breakpoints-in-python-code do użytku. –

2

Czy myślałeś o użyciu Komodo? Jest open source i ma porty dla Windows, Linux i MAC (myślę).

To może być alternatywą, a jeśli chcesz jakieś rady z notatnika ++ użytkowników, przyjrzeć się poniższym poście na tym samym miejscu:

Komodo Edit and Notepad++ ::: Pros & Cons ::: Python dev

Niektóre NPP użytkownicy tutaj wydawało się, że nastąpiło przełączyć do edycji pyton działa etc ...

osobiście nie wiem wiele na temat debugowania na Komodo, ale jak to jest IDE więc zdziwiłbym się, gdyby nie można było zrobić to łatwo

2

Naprawdę nie rozumiem, dlaczego Shashi's answer nie została przegłosowana. Za link, którym podał materiały, można przejść przez skrypty Pythona, o które prosił OP.

Tak więc dla wszystkich, którzy nie wiedzą o module pdb, po zaimportowaniu go funkcja pdb.set_trace() pozwala przejść przez obszar kodu po niej. I jest bardzo podobny do debugowania w studyjnych studiach. Podczas przechodzenia przez kod możesz wprowadzać różne polecenia.

Jednym z nich jest p <expression>, który umożliwia użytkownikowi wydrukowanie bieżącego stanu zmiennych w zakresie lokalnym i globalnym.

+0

Brakuje informacji i grozi martwy link. –