Seite 1 von 4
Python 3.5 Code in .exe Datei
Verfasst: Freitag 28. Dezember 2018, 19:49
von xXSkyWalkerXx1
Abend Programmierer,
ich weiß, ihr hört das oft hier, aber kann man eine python datei in eine standalone, ausführbare Datei umwandeln - z.B. in eine .exe Datei?
Ich finde vieles dazu, aber nichts hilft bzw. bin ich auch ratlos wie ich module für Python installieren kann, da ich keinen Bash-Terminal
habe und auch keine Ahnung habe wie ich den auf Windows zum Laufen bekomme.
Mein Ziel ist es ein Programm (UI und später GUI) mit anderen teilen zu können, die das Programm starten können, indem sie einfach auf's
Icon des Programmes klicken und dies sofort gestartet wird - ohne sichtbare Konsole & ohne den Python Interpreter zu benötigen.
Ist klar wie es gemeint ist?
Und wie, wenn möglich, wandel ich eine .py Datei in eine .exe Datei um?
...zur Verfügung steht ein Windows Rechner und ein Raspberry Pi3 , auf denen ich umwandeln könnte.
Grüße,
xXSkyWalkerXx1
Re: Python 3.5 Code in .exe Datei
Verfasst: Freitag 28. Dezember 2018, 19:54
von Sirius3
Was hast Du schon ausprobiert? Dein letzter Versuch, wenn ich mich recht erinnere, war es, zu versuchen auf einem RaspPi ein Windowsprogramm zu erzeugen, was verständlicherweise nicht so einfach ist. Hast Du das selbe inzwischen unter Windows probiert?
Re: Python 3.5 Code in .exe Datei
Verfasst: Freitag 28. Dezember 2018, 19:59
von xXSkyWalkerXx1
Hey Sirius!
Ja, genau dabei bin ich ja - zu versuchen auf mein Windows Rechner die .py Datei in eine .exe umzuwandeln. ^^
Ich habe Py2Exe für Python 3 gedownloadet, nur scheints so, dass ich da PyCharm brauche, außerdem habe ich das Problem, dass ich nicht weiß, wie ich ohne
dem Bash-Terminal die nötigen Module (wie BS4) downloaden und installieren kann.
Außerdem hatte ich es mal mit einem anderen Programm vesucht, vor paar Wochen, glaube es war PyInstaller (ich weiß es nicht mehr) und da hat es garnicht erst mein Python3 Client oder so finden können.
Grüße,
xXSkyWalkerXx1
Re: Python 3.5 Code in .exe Datei
Verfasst: Freitag 28. Dezember 2018, 21:05
von __blackjack__
@xXSkyWalkerXx1: PyCharm sollte man für die Umwandlung nicht benötigen und eine Bash auch nicht, Windows hat ja die cmd.exe und/oder eine PowerShell. ``pip`` ist das ziemlich egal aus welcher Shell heraus es gestartet wird.
Re: Python 3.5 Code in .exe Datei
Verfasst: Freitag 28. Dezember 2018, 21:22
von xXSkyWalkerXx1
wie kann ich denn mittels cmd.exe ein pip-download starten, z.B. "pip install pyinstaller" ?
pip wird seit python 3.xx standartmäßig mit intsalliert, auch bei windows, aber bei mir geht kein pip trotz python 3.5
Re: Python 3.5 Code in .exe Datei
Verfasst: Freitag 28. Dezember 2018, 21:39
von __blackjack__
Wenn Python im %PATH% liegt, dann mit ``python -m pip install pyinstaller``.
Re: Python 3.5 Code in .exe Datei
Verfasst: Freitag 28. Dezember 2018, 22:13
von xXSkyWalkerXx1
Was meinst mit " %PATH% " ?
Re: Python 3.5 Code in .exe Datei
Verfasst: Freitag 28. Dezember 2018, 22:48
von __deets__
Hast du das unbekannte Wort mal in eine Suchmaschine gekippt?
Re: Python 3.5 Code in .exe Datei
Verfasst: Freitag 28. Dezember 2018, 23:05
von snafu
xXSkyWalkerXx1 hat geschrieben: Freitag 28. Dezember 2018, 22:13
Was meinst mit " %PATH% " ?
Ist das dein Ernst? Kann es sein, dass du trotz 166 Beiträgen einfach zu dämlich oder nicht willens bist, dein Hirn (oder Google) einzuschalten? Nur eine rein Happy-Hypo-Stehtische Vermutung...
__deets__ hat geschrieben: Freitag 28. Dezember 2018, 22:48
Hast du das unbekannte Wort mal in eine Suchmaschine gekippt?
Kippen find ich super. Nicht so sehr die zum Rauchen, wohl aber das zum Saufen.

Re: Python 3.5 Code in .exe Datei
Verfasst: Freitag 28. Dezember 2018, 23:32
von xXSkyWalkerXx1
achsooo, ja...jetzt kappiert. ^^
Okay, habe jetzt in meiner Variable "PSModulePath" als Werte "%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\;C:\Python35;C:\Python35\Scripts" stehen, trotzdem funktioniert weder pip noch python.
Und falls jemand, warum auch immer, nach dem Pfad von Python fragen: C:\Users\Philipp\AppData\Local\Programs\Python\Python35
Grr, grieg die Kriese...
Re: Python 3.5 Code in .exe Datei
Verfasst: Samstag 29. Dezember 2018, 00:06
von Sirius3
Und warum steht dann DER Pfad nicht als Wert in Deiner PATH-Variable?
Re: Python 3.5 Code in .exe Datei
Verfasst: Samstag 29. Dezember 2018, 00:09
von xXSkyWalkerXx1
Weil der im Video es anders gemacht hat.

Re: Python 3.5 Code in .exe Datei
Verfasst: Samstag 29. Dezember 2018, 09:04
von snafu
PSModulePath wird nur von der PowerShell genutzt. Besser ist es - wie bereits geschrieben - den %PATH% zu verwenden. Den kriegst du auch schön grafisch aufbereitet zum Bearbeiten, wenn du unten bei der Windows-Suche einfach mal das Wort "path" eingibst...
Re: Python 3.5 Code in .exe Datei
Verfasst: Samstag 29. Dezember 2018, 16:07
von xXSkyWalkerXx1
Ja, danke @snafu , habs bereits.
Und riesen dank an @__blackjack__ , funktioniert übrigens alles!

Re: Python 3.5 Code in .exe Datei
Verfasst: Samstag 29. Dezember 2018, 17:15
von xXSkyWalkerXx1
Bekomme gerade in Error, beim Versuch etwas aus dem Internet zu parsen und in eine Datei zu schreiben.
Wenn ich das auf meinem RasPi3 (Linux) versuche funktioniert es ohne Fehler, doch unter Windows erhalte
ich folgenden Fehler, mit den ich als Neuling irgendwie rein nichts anfangen kann bzw. verstehe:
Code: Alles auswählen
File "C:\Users\Philipp\AppData\Local\Programs\Python\Python35\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 2-98: character maps to <undefined>
Re: Python 3.5 Code in .exe Datei
Verfasst: Samstag 29. Dezember 2018, 17:24
von __blackjack__
@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.
Re: Python 3.5 Code in .exe Datei
Verfasst: Samstag 29. Dezember 2018, 19:57
von xXSkyWalkerXx1
Ich hoffe der folgende Code meines Programms macht für dich vllt das Problem ersichtlich:
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()
...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
Re: Python 3.5 Code in .exe Datei
Verfasst: Samstag 29. Dezember 2018, 20:21
von __blackjack__
@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 ``+``.
Re: Python 3.5 Code in .exe Datei
Verfasst: Samstag 29. Dezember 2018, 21:55
von xXSkyWalkerXx1
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!

Re: Python 3.5 Code in .exe Datei
Verfasst: Sonntag 30. Dezember 2018, 11:50
von DeaD_EyE
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.
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
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.
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