Python Script anderen portabel bereitstellen

Probleme bei der Installation?
Benutzeravatar
Kebap
User
Beiträge: 339
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Python Script anderen portabel bereitstellen

Beitragvon Kebap » Montag 17. Juli 2017, 14:25

Hallo Leute!

Ich schreibe ja meist Code, den ich nur selbst benutze, aber nun ist es soweit: Jemand anderes möchte auch mal.

Wie kann ich meine Scripts möglichst einfach und komforabel bereitstellen? Zielsystem ist Windows.

Sprich: Der Kollege soll nicht erstmal Python herunterladen und installieren, nicht erstmal mein Script installieren müssen, und möglichst auch keine obskure .exe-Datei erhalten, die dann seinem Virenscanner osä. auffällt. Im besten Fall bleiben die .py Dateien im Textformat bestehen und auch Grundlage der Programmlogik, so dass sie auch nachträglich angepasst werden könnte.

Momentan experimentiere ich damit, einfach das komplette "python"-Unterverzeichnis neben meine Script-Datei zu legen, und dann mit einer kurzen Batch-Datei die Ausführung meines Python-Scripts in dieser Umgebung zu starten.

Gibt es da elegantere Lösungen?
MorgenGrauen: 1 Welt, >12 Gilden, >85 Abenteuer, >1000 Waffen und Rüstungen,
>2500 NPC, >16000 Räume, >170 freiwillige Programmierer, einfach Text, seit 1992.
Benutzeravatar
BlackJack
Moderator
Beiträge: 32710
Registriert: Dienstag 25. Januar 2005, 23:29
Wohnort: Berlin
Kontaktdaten:

Re: Python Script anderen portabel bereitstellen

Beitragvon BlackJack » Montag 17. Juli 2017, 14:39

@Kebap: Das klingt als würdest Du so etwas wie Pyinstaller nachbauen wollen.
“XML combines all the inefficiency of text-based formats with most of the unreadability of binary formats :-)” — Oren Tirosh, c.l.p, 2002
Benutzeravatar
Kebap
User
Beiträge: 339
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Re: Python Script anderen portabel bereitstellen

Beitragvon Kebap » Montag 17. Juli 2017, 14:50

Wenn ich das auf den ersten Blick richtig gesehen habe, purzelt bei Pyinstaller eine .exe Datei heraus, die quasi mein Script und die Pythonumgebung verheiratet hat. Das ist ja ganz anders als meine Zielvorstellung...?
MorgenGrauen: 1 Welt, >12 Gilden, >85 Abenteuer, >1000 Waffen und Rüstungen,
>2500 NPC, >16000 Räume, >170 freiwillige Programmierer, einfach Text, seit 1992.
Benutzeravatar
BlackJack
Moderator
Beiträge: 32710
Registriert: Dienstag 25. Januar 2005, 23:29
Wohnort: Berlin
Kontaktdaten:

Re: Python Script anderen portabel bereitstellen

Beitragvon BlackJack » Montag 17. Juli 2017, 15:10

@Kebap: Da kann auch eine EXE herauspurzeln, muss aber nicht. Du kannst auch das ”Zwischenergebnis” abgreifen: Ein Verzeichnis wo Python, Dein Code, und alles andere Notwendige drin ist.

https://pyinstaller.readthedocs.io/en/stable/operating-mode.html hat geschrieben:PyInstaller reads a Python script written by you. It analyzes your code to discover every other module and library your script needs in order to execute. Then it collects copies of all those files – including the active Python interpreter! – and puts them with your script in a single folder, or optionally in a single executable file.

[…]

You distribute the bundle as a folder or file to other people, and they can execute your program.
“XML combines all the inefficiency of text-based formats with most of the unreadability of binary formats :-)” — Oren Tirosh, c.l.p, 2002
Benutzeravatar
Kebap
User
Beiträge: 339
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Re: Python Script anderen portabel bereitstellen

Beitragvon Kebap » Montag 17. Juli 2017, 15:16

Ja, ich lese auch gerade unter https://pyinstaller.readthedocs.io/en/s ... one-folder

Es ist gut, dass er nur die benötigten Dateien und Module heraussucht, nicht das komplette "python" Unterverzeichnis bereitstellt.

Dennoch scheint er dann aus meinem Script eine .exe Datei zu erstellen, und (nicht sicher?) nicht die .py Datei zu benutzen.

Das heißt, obwohl ich das nicht nachbauen will (oder könnte), muss ich doch vor Ende vom Zug abspringen und neu abbiegen.

When you apply PyInstaller to myscript.py the default result is a single folder named myscript. This folder contains all your script’s dependencies, and an executable file also named myscript (myscript.exe in Windows).
MorgenGrauen: 1 Welt, >12 Gilden, >85 Abenteuer, >1000 Waffen und Rüstungen,
>2500 NPC, >16000 Räume, >170 freiwillige Programmierer, einfach Text, seit 1992.
Benutzeravatar
BlackJack
Moderator
Beiträge: 32710
Registriert: Dienstag 25. Januar 2005, 23:29
Wohnort: Berlin
Kontaktdaten:

Re: Python Script anderen portabel bereitstellen

Beitragvon BlackJack » Montag 17. Juli 2017, 15:22

@Kebap: Nicht wirklich. Im nächsten Abschnitt steht ja was diese EXE macht: Das ist das was Du als BAT schreiben wolltest. Wenn man einfach das Python-Skript startet passiert ja entweder gar nichts — wenn der Benutzer kein Python installiert hat weiss Windows nix mit einer *.py anzufangen, oder es wird das systemweit installierte Python verwendet — das hat eventuell nicht alle Abhängigkeiten installiert. Die EXE setzt die Umgebungsvariablen so dass das Python in diesem Verzeichnis verwendet wird und startet dann Dein Python-Programm mit dem mitgelieferten Python.
“XML combines all the inefficiency of text-based formats with most of the unreadability of binary formats :-)” — Oren Tirosh, c.l.p, 2002

Zurück zu „Installation/Konfigurieren“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder