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
Python 3.5 Code in .exe Datei
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?
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
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
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
- __blackjack__
- User
- Beiträge: 13071
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@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.
„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
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
pip wird seit python 3.xx standartmäßig mit intsalliert, auch bei windows, aber bei mir geht kein pip trotz python 3.5
- __blackjack__
- User
- Beiträge: 13071
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Wenn Python im %PATH% liegt, dann mit ``python -m pip install pyinstaller``.
„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
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...
Kippen find ich super. Nicht so sehr die zum Rauchen, wohl aber das zum Saufen.
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
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...
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...
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Weil der im Video es anders gemacht hat.
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...
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
Ja, danke @snafu , habs bereits.
Und riesen dank an @__blackjack__ , funktioniert übrigens alles!
Und riesen dank an @__blackjack__ , funktioniert übrigens alles!
-
- User
- Beiträge: 379
- Registriert: Mittwoch 27. Juni 2018, 17:39
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:
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>
- __blackjack__
- User
- Beiträge: 13071
- 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: 13071
- 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: 1017
- 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