Seite 1 von 1
Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 18:35
von pixewakb
Hi, wenn ich ein Skript mittels Python aufrufe - lädt einige Tools nach - läuft alles durch, wenn ich es unter Windows aufrufe, also direkt im Konsolenfenster, dann sehe ich ganz, ganz kurz eine Fehlermeldung (die ich so schnell nicht lesen kann) und anschließend ist es vorbei. Wenn ich es mit der Eingabeaufforderung öffne, tut sich auch nichts - kein Fehler.
Hat jemand eine Idee, worum es sich handeln könnte!? Habe schon an ein Umlaut-Problem gedacht.
Re: Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 18:42
von pixewakb
Fehler gelöst.
Ich habe dieses Codebeispiel im Netz gefunden (grob angepasst):
Code: Alles auswählen
import logging
logging.basicConfig(level=logging.DEBUG, filename='errors.log')
try:
1/0
except:
logging.exception("Error")
Damit konnte ich dann die Fehlermeldung auf die Platte bannen und dann den Fehler ausfindig machen. Ein importiertes Skript hat den Fehler verursacht - da hätte ich (Jahre) suchen können...
Re: Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 19:12
von pixewakb
Doch leider nicht gelöst.
Ich habe jetzt u. a. folgende Fehlermeldung:
Ich bräuchte mal Verständnishilfe:
Wenn ich das Tool mit Idle ausführe läuft alles durch, wenn ich es durch Doppelklick starte, dann bricht das Programm den Abruf ab und sagt mir, dass das Modul nicht geladen werden kann. Ich teste es mit Idle und alles läuft durch. Es handelt sich dabei um selbstgeschriebene Software, das Modul habe ich mit einer setup.py-Datei in meinem System verfügbar gemacht.
Irgendjemand eine Idee, wie so ein Fehler auftreten kann!? Beim Skript (Funktion und Daten habe ich zusammengefügt) wechselt die Fehlermeldung momentan (zuerst war es ein Syntaxfehler, jetzt das). Gefühlt ist da irgendetwas anders mit kaputt.
Re: Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 19:21
von bwbg
Glaskugel: Arbeitsverzeichnis (os.getcwd) oder sys.path.
Re: Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 19:25
von pixewakb
Arbeitsverzeichnis (os.getcwd) oder sys.path.
Ich versuche mal meine Gedanken zu formulieren:
Wenn ich es mit Eingabeaufforderung python setup.py install nach Python3.4 installiere und dann ein Skript aufrufe, dann ist es verfügbar, warum spielt sys.path oder os.getcwd da noch eine Rolle!?
Re: Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 19:29
von EyDu
Was bwbg sagen wollte: Wenn du weder Code noch Traceback zeigst, dann kann man nur raten.
Re: Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 19:32
von pixewakb
Code -> es ist Spaghetti (Daten, Code und Importe).
Traceback kriege ich gerade nicht, weil das Skript da keinen Fehler in eine Logdatei schreibt. Mom.
Aber jetzt:
Code: Alles auswählen
ERROR:root:Oops:
Traceback (most recent call last):
File "C:\Users\...\Zufallsgenerator.py", line 28, in <module>
from HtmlEmailVersand import emailversand
File "C:\Users\...\HtmlEmailVersand.py", line 124
print(".", end="")
^
SyntaxError: invalid syntax
Das Skript HtmlEmailVersand import wiederum einige Skripte.
Re: Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 19:35
von Sirius3
@pixewakb: wenn Du Fehler sehen willst, solltest Du Deine Programme nicht mit Doppelklick starten sondern im cmd-Fenster. Der Fehler ist doch eindeutig: Du startest Dein Python3-Skript mit Python 2.
Re: Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 19:43
von pixewakb
Autsch.
Ich habe heute einige Stunden darauf verwendet das Problem zu finden und ja, das erklärt mir (jetzt), warum dann - nach Lösung des Syntax-Fehlers - das Modul nicht mehr verfügbar ist. Das ist unter Python3.4 installiert.
Ich frage mal ganz doof: Woran hätte ich bemerken können, dass das die Ursache ist. Im CMD-Fenster lief es tadellos (ohne Fehlermeldung). Ich habe im System Python 3.4 und Python 2.7 installiert.
Zum Hintergrund: Das Tool wählt aus einer Grundgesamtheit Wertepaare aus und weist sie mir per E-Mail zu, so dass ich es mir bei Gelegenheit ansehen kann. Ich hätte eine pyw-Datei gern, dass es im Autostart aufgerufen wird, dann im Hintergrund (pyw) läuft (hat eine Zeitsteuerung an Bord).
Gibt es eine einfache Lösung, z. B. dass Python-Skripte mit Python 3.4 geöffnet werden anstatt mit Python 2.7? Drüberinstallieren? Eine Auswahl von python.exe im Python 3.4-Ordner mittels Öffnen mit bringt nicht das gewünschte Ergebnis, d. h. löst mein Problem nicht.
Re: Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 20:25
von BlackJack
@pixewakb: Es gibt bei Python 3 für Windows einen Starter der anhand der ersten Zeile im Skript die passende Python-Version verwendet.
Re: Python unter Windows - SyntaxError finden
Verfasst: Dienstag 17. Februar 2015, 20:37
von pixewakb
Danke! Hat funktioniert.
Erste Zeile entweder
oder
Eine Information (inzwischen ist das wohl in Python 3 enthalten) findet sich
hier.
Danke allen für die Hilfe.