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.
Python unter Windows - SyntaxError finden
Fehler gelöst.
Ich habe dieses Codebeispiel im Netz gefunden (grob angepasst):
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...
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")
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.
Ich habe jetzt u. a. folgende Fehlermeldung:
Code: Alles auswählen
ImportError
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.
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!?
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!?
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:
Das Skript HtmlEmailVersand import wiederum einige Skripte.
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
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.
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.
@pixewakb: Es gibt bei Python 3 für Windows einen Starter der anhand der ersten Zeile im Skript die passende Python-Version verwendet.
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.
Erste Zeile entweder
Code: Alles auswählen
#!/usr/bin/env python3
Code: Alles auswählen
#!/usr/bin/env python2
Danke allen für die Hilfe.