Python funktioniert nicht richtig trotz Neuinstallation?
Hey :) Ich habe gleich mehrere Probleme mit Python:
Ich würde gerne eine Python Datei in eine exe umwandeln. Dafür verwendete ich zunächst py2exe, was auch eine kurze Zeit funktionierte nachdem ich von Python 3.7 zu 3.3 wechselte. Nach einem doppelten Wechsel verwende ich nun wieder 3.3, da ich gerne noch eine .py umwandeln möchte. Jetzt funktioniert vieles aber nicht mehr:
Py2exe liefert mir immer nur eine Fehlermeldung. PyInstaller kann ich aus diversen Gründen nicht installieren.. Und der Befehl "pip" führt auch nur zu einer Fehlermeldung (" Die Benennung "pip" wurde nicht als Name eines Cmdlet, einer Funktion [...] erkannt"). Vor kurzem funktionierte alles noch problemlos... Python Dateien kann ich meist ausführen, aber nicht immer: manchmal wird mir auch gesagt, dass "python" nicht erkannt wird (siehe oben), "py" hingegen schon. Zuvor konnte ich beide Befehle verwenden... Aber nach dem ich eine Python mit py verwendete, bekomme ich anschließend dennoch eine Fehlermeldung: "SynthaxError: invalid synthax" ...
Ich brauche Hilfe...
PS: Ich verwende Windows
2 Antworten
Hast du das py2exe auch neuinstalliert? In derselben Version?
Wenn nein, könnte das evtl. Probleme verursachen...
Hm, komisch...
Vielleicht musst du eien Umgebungsvariable ändern, damit die Befehle gefunden werden...
Puh, da muss ich kurz nachdenken...
Umgebungsvariablen findes du folgendermaßen:
In der CMD den Befehl "set" eingeben.
Mit
set NAME=WERT
Kannst du dann die entspreechende Umgebungsvariavle auf dein Python setzen...
Ah halt, ich glaube man musste der Path-Variable von diesen einfach nur einen weiteren Eintrag hinzufügen...Nämlich das Pythonverzeichniss
Ach ja und vorsicht, dass du deine Umgebungsvariable nicht überschreibst... Wie du sie erweiterst siehst du in "set /?"
Danke :) Ich habe damit leider etwas Probleme, da ich Angst habe, etwas falsch zu machen... Welche Variable muss ich denn auf was ändern?
Mach es lieber über das Menü wie in der Antwort von Martin6466.
Du klickst doppelt auf die Variable "PATH", dan klickst du einmal auf das eingabefeld und navigierst zu dessen Schluss.
Dann schreibst du dort rein:
;[Pfad zu deinem Python]
Das [Pfad zu deinem Python ersetzt du durch den absoluten Pfad zu deinem Python.
Achtung: Absolut heißt in Windows, dass du Backslashes verwendest statt normale slashes.
Vielen Dank :) Das hat funktioniert und ich kann nun zumindest den Befehl python verwenden. Allerdings liefert auch das mir immer noch die Fehlermeldung "SynthaxError" am Ende und auch py2exe erstellt mir noch keinen dist ordner...
https://www.bilder-upload.eu/bild-dfffc6-1549439605.png.html
https://www.bilder-upload.eu/bild-b7a1f1-1549439675.png.html
Hm, Kenne mich mit Python nicht aus, aber die vielen Fehlermeldungen sehen auf jeden Fall falsch aus...
Der Syntaxerror sollte glaube ich auch keiner sein. Vieelleicht funktionierte s aber mit Klammern um den String.
Zu den Namespaceerrors finde ich folgendes:
Zu dem Printfehler habe ich folgendes gefunden:
https://stackoverflow.com/questions/826948/syntax-error-on-print-with-python-3
Bestätigt meine Theorie...
Übrigens: Wenn das vorher funktioniert hatte mit dem Print, dann hattest du wohl nicht Python 3 verwendet...
Danke. Zuvor hatte ich es nur bei anderen, komplexeren py versucht. Aber um einen Fehler zu finden, der immer auftritt, dachte ich, es sei besser, wenn ich es nun mit dem simplesten Skript versuche.. Ich habe es jetzt jedenfalls geändert und die Klammern hinzugefügt.
Das mit den Namespaces verstehe ich noch nicht so ganz.. Warum muss ich jetzt auf einmal irgendwelche Sachen diesen Ordnern hinzufügen? Vorher funktionierte es auch.. Achja: Eine Setup.py habe ich nicht, da es vorher wie schon gesagt auch ohne klappte...
Anmerkung: Ich kann jetzt eine exe daraus machen.
Mein Code beinhaltet nur das folgende:
print("Hello World")
Klicke ich nun auf meine Exe, so öffnet sich kurz CMD und mir wird der Text für weniger als eine Sekunde angezeigt. Anschließend schließt sich CMD wieder. Ist das normal?
Achja: Die Namespace Errors bleiben dennoch erhalten..
Ich kenne mich mit Python ehrlich nicht wirklich aus und mit py2exe hab ich auch noch nie gearbeitet.
Ich kann dir nur sagen, was ich im Internet fidne und das ist even dieser Link zu Stackoverflow.
Ich würde darauf schließen, dass das Problem auch mit Python 3.3 zusammenhängt:
https://github.com/PyCQA/pylint/issues/842
Heißt du musst schlußendlich diese komischen __init__.py-Files in den entsprechenden Bibliotheken hinzufügen.
Der File kann soweit ich das verstehe vollkommend leer sein, aber muss vorhanden sein:
https://stackoverflow.com/questions/448271/what-is-init-py-for
Ah, gut...Solange das funktioniert sollte das Namespace kein Problem darstellen.
Das sich die CMD gleich wieder schließt ist normal...Du müsstest ein Mousewait oder soetwas einbauen, damit das nicht passiert...
Vielen vielen Dank. Ich werde das mit den _init_ files bei Gelegenheit mal ausprobieren.
Ich habe jetzt noch versucht eine einzige exe mit py2exe zu erstellen, also ohne diese ganzen anderen Dateien, die sich normalerweise im dist Ordner befinden. Das hat auch funktioniert. Allerdings kann ich die exe nicht öffnen.
Ich habe hierfür diefolgende setup.py verwendet:
https://stackoverflow.com/questions/112698/py2exe-generate-single-executable-file
Leider weiß ich auch hier nicht mehr weiter. Auf den meisten Seiten wird nur auf andere Programme (PyInstaller oder cx verwiesen), welche ich aber aus unerklärlichen Gründen nicht installieren bzw. verwenden kann..
Kannst du mir hier vielleicht auch weiterhelfen?
Ach warte, die Files sind dann im Zielordner...
Ok... Dann sind die an sich auch nötig für das Programm..
Ohne funktionierte s nicht. An sich kann man aber sicher irgendwie eine .exe erstellen, ind er die zusätzlichen Files gleich mit drinnen sind...
Die Setup sollte dir, soweit ich das verstanden habe, eigentlich auch eine einzige .exe erstellen, in der die anderen Files dann mit drinnen sind.
Wenn du die .exe über die cmd aufrufst, bekommst du dann irgendwelche Fehlermeldungen?
Evtl. musst du das "windows" in der setup.py durch "console" ersetzen, wnen du eine konsolenanwendung möchtest...
Außerdem würde ich evtl. den Namen des Scripts so wie hier(
http://www.py2exe.org/index.cgi/Tutorial#Step2
) angeben. Ich schau mal, was das mit den "{ 'script' :" macht...
Ich bin mir ehrlich nicht ganz sicher. Also ich muss dafür erst zu dem Ordner navigieren und öffne die exe anschließend mit .\Hello.exe, richtig? Wenn ich das so mache, tut sich leider gar nichts...
Oh Gott, es funktioniert!! Vielen lieben Dank für alles! ♥
Woran lag es? An dem windows statt console oder an dem script-Ding?
Also ich habe die gesamte windows Zeile: windows = [{'script': "hello.py"}] durch das hier ersetzt: setup(console=['hello.py']
Hm, ok...Dann war es eines von beiden.
Wünsche dir noch viel Erfolg bei deinen weiteren Programmen. Hoffentlich funktionieren die jetzt dann auch.
Hast du Python 3.7 deinstalliert? Wenn ja, da schau mal in deine Umgebungsvariablen, ob da ein Pfad zu zu deiner aktuellen Python-Installation bzw. noch ein Verweis auf die 3.7 vorhanden ist.
Bei Windows geh auf
Systemsteuerung -> System -> Erweiterte Systemeinstellungen -> Erweitert. Dort ist ein Button "Umgebungsvariablen"
Danke. Das habe ich gefunden :) Nach welchen Einträgen muss ich suchen? Ich finde nämlich gar nichts, was Python beinhaltet...
Füge der Path-variable das Verzeichniss hinzu (mit ";" getrennt als absoluten Pfad wie bei allen anderen), welches die ausführbaren Pythondateien enthält, die Pythonbefehle
Dann könnte das schon das Problem sein. Bin kein Experte für Python unter Windows, aber ich meine, daß Python bei der Installation automatisch auch Umgebungsvariablen setzt und zwar PYTHONHOME und PYTHONPATH. In PYTHONHOME setzt du den Pfad zu deiner Python-Installation z.B. "c:\Python33",
In PYTHONPATH setzt du die Pfade zu deinen Python-Lib-Verzeichnissen z.B. c:\Python33\Lib;c:\Python33\Scripts;c:\Python33\Lib\site-packages;" Pfade zu eventuellen weiteren Python-Bibliotheken kann du bei Bedarf anhängen
fügen sie es direkt der PATH-variable hinzu
Auf Stackoverflow machen sie das indirekt über eigene Umgebungsvariablen:
https://stackoverflow.com/questions/3701646/how-to-add-to-the-pythonpath-in-windows
Leider war es doch noch nicht so einfach. Ich habe jetzt den Path hinzugefüht, der zuvor komplett fehlte, und ich kann nun auch den Befehl python verwenden, aber leider liefert mir das immer noch eine Fehlermeldung: "SynthaxError" und auch py2exe erstellt mir immer noch keinen dist ordner...
https://www.bilder-upload.eu/bild-dfffc6-1549439605.png.html
https://www.bilder-upload.eu/bild-b7a1f1-1549439675.png.html
Das wäre auch eine der Umgebungsvariablen gewesen...Aberw enn du den Python-befehl so ausführen kannst sollte das nicht das Problem verursachen...(Wobei, vielleicht schon...Einfach mal das Zeug auf StackOverflow anschauen...)
Die muss auch nicht existierten sondern ist nur eine Alternative zu dem Zeug mit der PATH-Variable...
Ist aber sowieso egal...Anscheinend hat das nichts mit deiner Fehlermeldung zu tun...
"SynthaxError" deutet eher daruaf hin, daß was in deinem Script falsch ist. Zu den Variablen hat Destranix schon alles gesagt
Mit den Wechseln habe ich immer alle Programme de- und anschließend neuinstalliert...