Python 3.5 Code in .exe Datei
- __blackjack__
- User
- Beiträge: 13103
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@xXSkyWalkerXx1: Da Du den Code nicht zeigst, kann man allgemein nur sagen, das man am besten immer explizit die Kodierung angibt, und sich nicht darauf verlässt was Python da ”magisch” errät, denn das kann unter anderem davon abhängen welche Kodierung(en) das System benutzt auf dem das läuft.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Ich hoffe der folgende Code meines Programms macht für dich vllt das Problem ersichtlich:
...denn das ist eigentlich das, was das Problem ausmacht.
Mit der Funktion "print()" wird "script" allerdings normal ausgegeben,nur nicht geschrieben.
Vielleicht mittels ".encode("utf-8")" ?
Mal auch ein riesen Dank an die aktiven Mitglieder, die hier recht schnell antworten und hilfreich sind!
Grüße,
xXSkyWalkerXx1
Code: Alles auswählen
def generate(self):
#try:
session = requests.Session()
session.post(login_url,data={'username':username,'password':passwort})
session.post(source_url,data={'page_pwd':'<secret>'})
get_login2 = session.get(source_url)
soup = bs(get_login2.text,"html5lib")
find_script = soup.find_all("p")
for p in find_script:
if "xXSkyWalkerXx1 GAMEPACK EDITION" in p.text:
script = p.text
w = open(os.environ['HOME']+'/Desktop/Fortnite_SkyGamePack.txt',"w") #.gpc !
w.write("//include_lib: "+str(username[0:3])+str(username[-2])+str(username[-1])+"_library\n") #muss nicht verstanden werden ^^
w.write(script)
w.close()
Mit der Funktion "print()" wird "script" allerdings normal ausgegeben,nur nicht geschrieben.
Vielleicht mittels ".encode("utf-8")" ?
Mal auch ein riesen Dank an die aktiven Mitglieder, die hier recht schnell antworten und hilfreich sind!
Grüße,
xXSkyWalkerXx1
- __blackjack__
- User
- Beiträge: 13103
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@xXSkyWalkerXx1: Wenn Du das UTF-8-kodiert speichern möchtest, solltest Du es auch entsprechend kodieren. Allerdings würde ich die Kodierung beim öffnen der Textdatei angeben.
Pfade setzt man mit `os.path.join()` zusammen und nicht mit ``+``.
Pfade setzt man mit `os.path.join()` zusammen und nicht mit ``+``.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Super, danke! Hatte bereits vorher gefunden, das man "encoding[etc.]" verwenden muss, habs auch bei "open" versucht, aber muss irgendwas falsch gemacht haben - nun funktioniert's!
- DeaD_EyE
- User
- Beiträge: 1020
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Ein vorweg, Py2exe habe ich noch nie verwendet. Ich verwende immer den PyInstaller.
Ich nutze zwar selten Windows, weiß aber, dass ca. seit Python 3.5 der Interpreter nicht mehr im Pfad sein muss/sollte.
Die haben den Installer überarbeitet. Wo hast du Python 3.5 für Windows eigentlich her? Ich habe gerade nach dem Installer gesucht
und musste feststellen, dass die nur noch den Source Code für diese Version vertreiben.
Du kannst jedenfalls zu Python 3.7.2 auf dem Windows-PC updaten.
Egal ob wie der Interpreter jetzt installiert wird (Systemweit in C:\Programme oder als User-Anwendung in %localappdata%\Programs\Python)
das Tool py.exe findet ihn.
Wichtig ist nur, dass bei der Installation mit angegeben wird, dass der Launcher Systemweit installiert werden soll.
Ob man Python zum Pfad hinzufügen soll oder nicht, streiten sich die Geister. Ich mache das schon lange nicht mehr.
Installiert man es als Anwender, meckern manche Module rum, dass sie nicht im Systempfad liegen.
Hier und dort knallt es mal, wenn man zu viele Module installiert hat. Enum34 wird z.B. durch irgendeine Abhängigkeit installiert, sorgt aber für Probleme beim PyInstaller, da seit 3.5 oder später enum.IntEnum iterierbar ist und bei Enum34 war das nicht der Fall.
Viel besser ist es noch, wenn du eine Virtuelle Umgebung einrichtest, in der nur die Module installiert werden, die deine Software benötigt.
Ich nutze zwar selten Windows, weiß aber, dass ca. seit Python 3.5 der Interpreter nicht mehr im Pfad sein muss/sollte.
Die haben den Installer überarbeitet. Wo hast du Python 3.5 für Windows eigentlich her? Ich habe gerade nach dem Installer gesucht
und musste feststellen, dass die nur noch den Source Code für diese Version vertreiben.
Du kannst jedenfalls zu Python 3.7.2 auf dem Windows-PC updaten.
Egal ob wie der Interpreter jetzt installiert wird (Systemweit in C:\Programme oder als User-Anwendung in %localappdata%\Programs\Python)
das Tool py.exe findet ihn.
Wichtig ist nur, dass bei der Installation mit angegeben wird, dass der Launcher Systemweit installiert werden soll.
Ob man Python zum Pfad hinzufügen soll oder nicht, streiten sich die Geister. Ich mache das schon lange nicht mehr.
Installiert man es als Anwender, meckern manche Module rum, dass sie nicht im Systempfad liegen.
Code: Alles auswählen
py -m pip install PyInstaller --upgrade
echo print('Hello World') > test_program.py
py -m PyInstaller -F test_program.py
dist\test_program.exe
Viel besser ist es noch, wenn du eine Virtuelle Umgebung einrichtest, in der nur die Module installiert werden, die deine Software benötigt.
Code: Alles auswählen
py -m venv env1
env1\Scripts\activate.bat
# dann steht ein (env1) im prompt
# alle Module werden dann in env1 installiert
# und nicht Global
# deine Abhängigkeiten installieren
# py -m pip install -r requirements.txt
py -m pip install PyInstaller --upgrade
echo print('Hello World') > test_program.py
py -m PyInstaller -F test_program.py
dist\test_program.exe
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Ich weiß, dass ich zu 3.7 updaten kann, aber ich habe auf meinem RasPi3 auch nur 3.5 und so kann ich wenigstens auf beiden Geräten programmieren, ohne auf dem anderen Gerät vllt was überarbeiten zu müssen, wegen möglichen Unterschieden beider Versionen.
Naja, also ich habe es gerade mit "Auto_Py_To_Exe" geschafft, nach einigen Anläufen. ^^
Aber wenn ich die Anwendung starten möchte (mittels doppel-klick auf die Anwendung) wird mir mein Programm nicht angezeigt, obwohl "Auto_Py_To_Exe" keine Warnung für mögliche Probleme oder so angab.
Woran liegt das?
Naja, also ich habe es gerade mit "Auto_Py_To_Exe" geschafft, nach einigen Anläufen. ^^
Aber wenn ich die Anwendung starten möchte (mittels doppel-klick auf die Anwendung) wird mir mein Programm nicht angezeigt, obwohl "Auto_Py_To_Exe" keine Warnung für mögliche Probleme oder so angab.
Woran liegt das?
@xXSkyWalkerXx1: wie oft soll man Dir noch sagen, dass wenn Du keine Informationen lieferst, Du keine Antwort bekommen kannst. Woher soll irgendjemand wissen, was Du gemacht hast und was dann nicht so funktioniert, wie Du Dir das vielleicht denkst? Source-Code, Einstellungen, EXE-Datei hier posten, vielleicht tut sich das ja jemand an, nach dann nach dem Fehler zu suchen.
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Ja, wollte ja auch eigentlich die Datei hier hochladen, aber hier gibt's ja keine Möglichkeit eine Datei anzuhängen.
Aber dann ist mir ja DropBox eingefallen: <link kommt gleich>
Aber dann ist mir ja DropBox eingefallen: <link kommt gleich>
- __blackjack__
- User
- Beiträge: 13103
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@xXSkyWalkerXx1: Was passiert wenn Du die Anwendung nicht per Doppelklick startest, sondern über die Konsole? Werden da Fehlermeldungen ausgegeben?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Also, hier erstmal der Link: https://www.dropbox.com/sh/mbwy91v4xyl1 ... xI5ca?dl=0
Hab Gefühl, dass "Py_2_Exe" manchmal Macken hat, weshalb es gerade zur Verspätung kam.
Zu deiner Frage: es öffnet dann nur erneut die Konsole, im neuen Fenster, mehr nicht, aber der zeigt auch nichts weiter in dieser.
PS. Beim Download kann es sein, dass der AntiVirus anspringt, das ist normal und angeblich bei jeder .exe Datei , erzeugt durch Py_2_Exe.
Hab Gefühl, dass "Py_2_Exe" manchmal Macken hat, weshalb es gerade zur Verspätung kam.
Zu deiner Frage: es öffnet dann nur erneut die Konsole, im neuen Fenster, mehr nicht, aber der zeigt auch nichts weiter in dieser.
PS. Beim Download kann es sein, dass der AntiVirus anspringt, das ist normal und angeblich bei jeder .exe Datei , erzeugt durch Py_2_Exe.
Hi,
wie wäre es damit: Du lädst die neuste Python-Version (oder eine deiner Wahl) herunter. Bei der Installation achtest du darauf dass "add Python 3.x to PATH" und "Disable PATH length limit" (<- Am ende der Installation) angehakt sind. Dann probier nochmal "pip install pyinstaller". Wenn pyinstaller installiert ist, gehe mit 'cd Pfad\zur\Datei' zur Datei und führe dann "pyinstaller namedesprogramms.py" aus.
Grüße
wie wäre es damit: Du lädst die neuste Python-Version (oder eine deiner Wahl) herunter. Bei der Installation achtest du darauf dass "add Python 3.x to PATH" und "Disable PATH length limit" (<- Am ende der Installation) angehakt sind. Dann probier nochmal "pip install pyinstaller". Wenn pyinstaller installiert ist, gehe mit 'cd Pfad\zur\Datei' zur Datei und führe dann "pyinstaller namedesprogramms.py" aus.
Grüße
- DeaD_EyE
- User
- Beiträge: 1020
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
xXSkyWalkerXx1 hat geschrieben: ↑Sonntag 30. Dezember 2018, 13:26 Ich weiß, dass ich zu 3.7 updaten kann, aber ich habe auf meinem RasPi3 auch nur 3.5 und so kann ich wenigstens auf beiden Geräten programmieren, ohne auf dem anderen Gerät vllt was überarbeiten zu müssen, wegen möglichen Unterschieden beider Versionen.
- du darfst async und await nicht mehr als Namen verwenden
- du darfst einen Generator nicht mit StopIteration beenden, statdessen return verwenden
Vorher musste man den Pfad immer mit der Funktion str in Strings umwandeln, was etwas komisch im Code aussah.
Wenn du Python 3.7.2 auf dem Raspberry Pi verwenden willst, hast du verschiedene Möglichkeiten:
- Inoffiziellen Respository für Python Binär-Pakete finden (ich hab nichts gefunden)
- selbst kompilieren und als User installieren: https://www.scivision.co/compile-instal ... pberry-pi/
- selbst kompilieren und Systemweit installieren: https://www.scivision.co/compile-instal ... pberry-pi/
- selbst kompilieren mit pyenv (dann müssen nur die Pakete zum kompilieren installiert werden)
So kannst du dann auch die neuste Python-Version auf deinem Raspberry Pi verwenden. Alle gängigen Bibliotheken sind kompatibel. (bis auf Tensorflow)
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Okay, also ich habe folgendes herausgefunden:
- wenn ich ein konsolenbasiertes Programm umwandel funktioniert es - .exe Datei startet Konsole, etc.
- eine UI (nicht konsolenbasiert) funktioniert widerrum nicht - es wird kein UI angezeigt (in dem Falle wurde Tkinter verwendet).
- wenn ich ein konsolenbasiertes Programm umwandel funktioniert es - .exe Datei startet Konsole, etc.
- eine UI (nicht konsolenbasiert) funktioniert widerrum nicht - es wird kein UI angezeigt (in dem Falle wurde Tkinter verwendet).
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Ja, vergessen mit dazu zu schreiben:
Beim Start von der Konsole aus passiert auch nichts, die Datei wird geladen - dieses Ladekreis Symbol wird angezeigt, dann verschwindet es und nichts weiter passiert.
Nirgends eine (Fehler)Meldung oder sonst was.
Beim Start von der Konsole aus passiert auch nichts, die Datei wird geladen - dieses Ladekreis Symbol wird angezeigt, dann verschwindet es und nichts weiter passiert.
Nirgends eine (Fehler)Meldung oder sonst was.
- __blackjack__
- User
- Beiträge: 13103
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
In der Windowskonsole gestartete Programme führen zu einem Ladekreissymbol? Bekommst Du denn den Prompt zurück nachdem „nichts“ passiert?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Hoppla, tut mir leid, war mit den Gedanken teils bei der Ausführung mittels Mausklicks, ich korrigier mich:
Start über Mausklick: Das Ladekreissymbol wird angezeigt und verschwindet kurz darauf wieder - danach passiert scheinbar nichts weiter...
Start über Konsole: Ich gebe "start [Pfad des Prog.]" in die Konsole ein, Cursor wird auf neue Zeile gesetzt, also es führt das Prog. aus, aber das UI wird trotzdem nicht angezeigt.
Ich werde mal die .py Datei erneut umwandeln lassen, aber als Konsolenbasiert und werde noch eine print - Funtkion schnell einfügen, um zu sehen, ob das wenigstens funktioniert, denn eine reine Konsolenanwendung funktioniert komischerweise.
UPDATE: In der Konsole wird der Text (selbstgewählter) zwar angezeigt, aber die Konsole selbst verschwindet nach kurzer Zeit wieder. Allerdings finde ich im Taskmanager ein Abbildname "pythonw.exe" - mein Programm vllt?
Start über Mausklick: Das Ladekreissymbol wird angezeigt und verschwindet kurz darauf wieder - danach passiert scheinbar nichts weiter...
Start über Konsole: Ich gebe "start [Pfad des Prog.]" in die Konsole ein, Cursor wird auf neue Zeile gesetzt, also es führt das Prog. aus, aber das UI wird trotzdem nicht angezeigt.
Ich werde mal die .py Datei erneut umwandeln lassen, aber als Konsolenbasiert und werde noch eine print - Funtkion schnell einfügen, um zu sehen, ob das wenigstens funktioniert, denn eine reine Konsolenanwendung funktioniert komischerweise.
UPDATE: In der Konsole wird der Text (selbstgewählter) zwar angezeigt, aber die Konsole selbst verschwindet nach kurzer Zeit wieder. Allerdings finde ich im Taskmanager ein Abbildname "pythonw.exe" - mein Programm vllt?
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Shit, keiner 'ne Idee?
@xXSkyWalkerXx1: Du hast irgendeine Abhängigkeit nicht mit in Deine exe gepackt. Da Du aber bisher noch nicht geschrieben hast, mit welcher Konfiguration Du das erstellt hast, kann man Dir nicht helfen. Erster Schritt ist, das Ding mit python.exe statt mit pythonw.exe zu packen und in der Konsole zu starten, dass man die Fehlermeldung sieht.