Fehlerbehebungen in Python

Wenn ein Script nicht zu Ende durchläuft und ein Fehler ausgegeben wird, dann erscheint im Python Editor eine genaue Beschreibung zum Fehler mit der entsprechenden Zeilennummer.

  1. Öffnen Sie den Python Editor und das entsprechende Script und klicken Sie auf Ausführen.
  1. Das Script wird ausgeführt und die Fehlermeldung erscheint:
    python_script_error.png
  1. Im Python Editor unten erscheint z.B. folgende Info:
    >>>
    Traceback (most recent call last):
      File "<string>", line 146, in <module>
      File "<string>", line 82, in main
    AttributeError: Unknown attribute "phase"
    >>>

    Bedeutung:
    line 146   Funktion main wird in Zeile 146 aufgerufen
    line 82     Der Fehler tritt auf in Zeile 82

  2. Scrollbalken gedrückt halten und zur Zeile 82 navigieren:
    python_script_debug.png
    Der Fehler ist nun klar. showPiority ist ein Tippfehler und sollte eigentlich showPriority heissen.
  3. 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.


22.02.2010 | 24.01.2017: System context not allowed dokumentiert.
Produktlinien: Expert
Module: Leistung & CRM