Fehlerbehebungen in Python

Produktlinien: Expert
Module: Leistung & CRM
Erstellt: 22.02.2010, Änderung:
Python Konsole ergänzt, neue Screenshots.
Mehr ansehen

Wenn ein Script nicht durchläuft und eine Fehlermeldung ausgegeben wird, können Sie diesen wie folgt genauer analysieren.

  • Öffnen Sie das entsprechende Script im Script Editor und klicken Sie auf Ausführen. Dabei müssen Sie darauf achten, dass das argobject vom richtigen Typ ist, z.B. eine Leistung oder ein Projekt. Das Script wird ausgeführt und die Fehlermeldung erscheint in der Ausgabe auf der rechten Seite:
  • Alternativ dazu können Sie auf dem Objekt, wo der Fehler auftritt, die Python Konsole öffnen und das Script noch einmal ausführen. Die Fehlermeldung erscheint dann in der Konsole:

In der Fehlermeldung finden Sie die Zeilennummer, auf welcher das Problem auftritt, z.B.:

Traceback (most recent call last):
File "<string>", line 146, in <module>
File "<string>", line 85, in main
NameError: global name 'showPiority' is not defined

Es ist immer die unterste Zeilennummer relevant für den aktuell aufgetretenen Fehler. Hier tritt er also in Zeile 85 des Scripts auf.

Im Script kann jetzt zu dieser Zeile navigiert werden. Der Fehler ist nun klar: showPiority ist ein Tippfehler und sollte showPriority heissen.

Fehler korrigieren, speichern, und das Script wieder ausführen.

Häufige Fehlerquellen

Verwendung von Variablen

Bei der Verwendung von Variablen muss auf die Gross-Kleinschreibung geachtet werden. Python ist case-sensitiv. Beim Verwenden von Variablen muss immer beachtet werden, dass die Variable 1:1 übereinstimmt.

var1 ist nicht gleich Var1

In solchen Fällen ist es eher schwierig, den Fehler zu finden, weil Python in bestimmten Fällen keinen Fehler ausgibt, sondern eine neue Variable 'Var1' erzeugt. Daher immer darauf achten, dass die verwendete Variable auch exakt benannt wird.

Einrückung

Der Python Interpreter behandelt eine Einrückung richtig, wenn diese 4 Leerzeichen beinhaltet. Ein Tabulator wird in einem Python Editor automatisch durch 4 Leerzeichen ersetzt.

Sollte ein Codeteil von einer Webseite oder von einer anderen Textdatei in den Python Editor kopiert werden, dann muss darauf geachtet werden, dass es keine Einrückungen mit Tabulatoren hat. Falls dies der Fall ist, müssen die Tabulatoren durch 4 Leerzeichen ersetzt werden. Diverse Editoren unterstützen die Option Tabulator ersetzen durch x-Zeichen.

Sammeltypen (Liste, Wörterbücher, Dictionary)

Sammeltypen sollten vor der Verwendung sicherheitshalber erstellt werden, damit es nicht zu unterwarteten Fehlern kommt (Zugriff auf oder Rückgabe von nicht bestehenden Listen etc.)

  • Liste erzeugen: list = []
  • Dictionary erzeugen: dict = {}

System context not allowed

Dieser Fehler tritt auf, wenn man auf den Systemcontext zugreift, das aber nicht erlaubt ist. So ist es zum Beispiel aus Sicherheitsgründen nicht erlaubt, Python Scripts mit vtcapp.beginsystemcontext() und vtcapp.endsystemcontext() direkt im Python Editor auszuführen, da dieser Vorgang erweiterte Berechtigungen erteilt, für was ein entsprechendes Login benötigt wird. Siehe auch die Beschreibung in den Python Interfaces.

Ähnliche Artikel