Fehlerbehebungen in Python
Produktlinie
Standard
|Expert
Betriebsart
CLOUD ABO
|ON-PREMISES
Module
Leistung & CRM
Budget & Teilprojekt
Fremdkosten
Ressourcenplanung
Business Intelligence
Wenn ein Script nicht durchläuft und eine Fehlermeldung ausgegeben wird, können Sie diesen wie folgt genauer analysieren.
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:
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.
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.
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 sollten vor der Verwendung sicherheitshalber erstellt werden, damit es nicht zu unterwarteten Fehlern kommt (Zugriff auf oder Rückgabe von nicht bestehenden Listen etc.)
list = []
dict = {}
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.SystemContext()
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 Vertec Python Funktionen
.