Debuggen unter Python

Alles was mit NetBeans und Scriptsprachen zu tun hat (bitte beachten PHP hat seinen eigenen Bereich)

Moderator: wegus

Benutzeravatar
kodela
Beiträge: 64
Registriert: 21.12.2009, 14:34
Wohnort: Landsberg am Lech
Kontaktdaten:

Debuggen unter Python

Beitragvon kodela » 13.10.2015, 11:36

Hallo,

nach meinen guten Erfahrungen mit NetBeans für Java-Programme habe ich nun versucht, es auch für Python zu verwenden. Das ging bisher auch recht gut, lediglich will es mir nicht gelingen, damit auch zu debuggen.

Folgende Plugins habe ich unter Netbeans 8.0.2 installiert:

  • Sample Python/Jython Projects V. 1.1
  • PythonTestrunner V. 1.0
  • PythonHelp V. 1.0
  • PythonCore V. 1.0
Starte ich mein erstes Minitestprogramm über den Run-Button (F6), dann wird es einwandfrei ausgeführt.

Starte ich es jedoch über den Debugg-Button (Strg+F5), dann wird folgende Meldung ausgegeben:

Code: Alles auswählen

>>>[LOG]PythonDebugger : overall Starting
[LOG]PythonDebugger.taskStarted : I am Starting a new Debugging Session ...
[LOG]This window is an interactive debugging context aware Python Shell
[LOG]where you can enter python console commands while debugging
>>>

Zunächst wurden noch fehlende Klammern für den Aufruf von "print" und "exec" in der Datei "jpydaemon.py" moniert. Nachdem ich die aber eingefügt hatte kommt jetzt noch folgende Meldung:

Code: Alles auswählen

  File "C:\Users\Rudi\AppData\Roaming\NetBeans\8.0\config\nbPython\debug\nbpythondebug\jpydaemon.py", line 1082
    except IOError, e:
                  ^
Debug session Abort =1
SyntaxError: invalid syntax

Diese Zeile und die folgende sehen so aus:

Code: Alles auswählen

        except IOError, e:
            return _utils.parsedReturned( argument = arg , message = e.strerror )

Was hier falsch ist, weiß ich nicht.

In der Statuszeile zum Debuggfenster kommt noch folgende Meldung:

ERROR :: Server Socket listen for debuggee has timed out(more than 20 seconds wait) java.net.SocketTimeoutException: Accept timed out

Damit kann ich nun auch nichts anfangen.

Wer kann mir helfen, dass ich das mit dem Debuggen hinbringe und mir die Möglichkeiten nennen, die man für das Debugging unter Python hat, zum Beispiel, ob gesetzte Haltepunkte auch wirklich Haltepunkte sind? Bei mir hat bisher noch nichts angehalten.

MfG, kodela

Benutzeravatar
kodela
Beiträge: 64
Registriert: 21.12.2009, 14:34
Wohnort: Landsberg am Lech
Kontaktdaten:

[Gelöst] Re: Debuggen unter Python

Beitragvon kodela » 16.10.2015, 11:00

Hallo,

ich habe natürlich nicht nur gewartet, bis mir hier jemand die Lösung meines Problems aufzeigt, sondern habe auch selbst danach gesucht und sie auch gefunden.

Zunächst bin ich zu Python 2 zurückgegangen, da ich festgestellt hatte, dass die für das Debuggen erforderliche Datei "jpydaemon.py" nicht vollständig an Python 3 angepasst wurde. Angepasst beziehungsweise geändert wurde allerdings der Modul-Bezeichner "__builtin__" nach "__builtins__" und das war das Problem.

Nach der Änderung von "import __builtins__" zu "import __builtin__" in Zeile 58 funktioniert der Debugger unter NetBeans jetzt einwandfrei.

MfG, kodela

HartmutF
Beiträge: 2
Registriert: 19.10.2015, 22:07

Re: Debuggen unter Python

Beitragvon HartmutF » 19.10.2015, 22:19

Hallo kodela,

zu deiner Nachricht vom 16.10. 12 Uhr: ich habe das alles auch durchlaufen, aber die jpydaemon.py hat bei mir in Zeile 58 den Inhalt "import __builtin__" und nicht "import __builtins__" . Auch die Gegenprobe, absichtlich ..builtins__ zu setzen, hat nicht geholfen. Dann stößt er sich wieder an den print und exec. Deshalb bin ich jetzt etwas verwirrt. :?

MfG
Hartmut

Benutzeravatar
kodela
Beiträge: 64
Registriert: 21.12.2009, 14:34
Wohnort: Landsberg am Lech
Kontaktdaten:

Re: Debuggen unter Python

Beitragvon kodela » 21.10.2015, 22:27

Hallo Hartmut,

es war so, wie ich geschrieben habe und nach der Änderung funktionierte das Debuggen eigentlich recht gut. Ein Problem stellten nur inputs dar. Wenn ich nach einem input einen Breakpoint setzte, wurde das Programm vor diesem Input, beziehungsweise dess Ausführung, abgebrochen.

Wir können natürlich die Datei jpydaemon.py in verschiedenen Versionen bekommen haben. Ich fand im Netz den Hinweis, dass für Python 3 der Bezeichne Modul-Bezeichner "__builtin__" nach "__builtins__" geändert werden müsste und stellte fest, dass bei mir dieser Bezeichner bereits umbenannt, also für Python 3 angepasst war. Da ich aber Python 2 verwendete, machte ich diese Änderung rückgängig und damit funktionierte das Debuggen.

Mittlerweile habe ich bei mir alles wieder deinstalliert, da ich sowohl Python 2 wie auch Python 3 installiert hatte und dies vermutlich wegen falscher Einstellungen meinerseits immer wieder zu Problemen führte, obwohl ich für Python 3 auf das Debuggen verzichtete, aber Programme beider Versionen unter NetBeans bearbeiten wollte.

Wie es weiter geht, weiß ich noch nicht. Im Augenblick ist Python für mich nicht so wichtig. Ich wollte diese Sprache primär nur kennen lernen. Die dabei gemachten Erfahrungen sind durchaus zwiespältige.

MfG, kodela

HartmutF
Beiträge: 2
Registriert: 19.10.2015, 22:07

Re: Debuggen unter Python

Beitragvon HartmutF » 30.10.2015, 09:39

Der Python-Plugin für Netbeans scheint noch nicht ganz ausgereift zu sein, wie ja auch an einer Stelle angedeutet wird. Für meine Zwecke bin ich jetzt auf PyCharm gegangen, mit dem ich hervorragend zurechtkomme.

Netbeans ist jetz für mich vor allem für Javascript et. al. zu gebrauchen, da ich kein Javamensch bin :).

Hartmut


Zurück zu „NetBeans - Scriptsprachen“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast