py to exe - cx_Freeze

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
David_123
User
Beiträge: 8
Registriert: Montag 26. Juni 2017, 12:40

Guten morgen zusammen,
ich nutze Python 3.6.1 und möchte ein Programm schreiben, das später mal als exe ausführbar auf Rechnern ohne installierter Python Umgebung läuft.
Dazu habe ich mich entsprechend der Dokumentationen entlanggehangel.

1. klassisches Miniprogramm hello.py erstellt mit:

Code: Alles auswählen

print("Hello World!")
2. cx_Freeze mit pip installiert.

Code: Alles auswählen

pfad> pip install cx_Freeze
3. setup.py erstellt:

Code: Alles auswählen

from cx_Freeze import setup, Executable
setup( name = "hello",
	   version = "1.1",
	   description ="Ausgabe von Hello World!",
	   executables = [Executable("hello.py")]
	   )
4. und die exe erstellt:

Code: Alles auswählen

pfad> python setup.py build
Die hello.exe läuft ohne Probleme auf meinem (Windows 7 Pro)Rechner. Auf einem anderen Rechner mit Windows Server 2012 erscheint die Fehlermeldung:
Das Programm kann nicht gestartet werden, da python36.dll auf dem Computer fehlt. Installieren Sie das Programm erneut, um das Problem zu beheben.
Ziel war es eigentlich eine exe zu erzeugen, die alleine lauffähig ist. Mache ich irgendwas falsch? Kann doch nicht so schwierig sein...
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Doch, ist es, zumindest nicht einfach. Mit cx_Freeze weiß ich es jetzt nicht, doch mit PyInstaller kam ich nicht klar, weil eine runtime*.dell von MS fehlte. Habe das Problem dann ganz, ganz weit nach hinten verschoben, weil sich Anwendungen auch als Zip-Ordner weitergeben lassen und dass vor Nutzung auf einen Windows-Rechner Python installiert werden muss, kann man ja in einer Beschreibung vermerken.

Erst einmal Python lernen und wenn man dann eine Anwendung geschrieben hat, bei der sich eine Weitergabe mit *.exe lohnt, kann man sich ja immer noch eingehender mit dem Problem beschäftigen. So sehe ich das zumindest zurzeit. Wobei man sich dann auch noch mit den Lizenzen auseinandersetzen muss, in wieweit man überhaupt berechtigt ist, diese oder jene *.dell weiterzugeben. Bei MS und Visual Studio gab es da zumindest mal Beschränkungen bei den kostenlosen Versionen. Auch wenn Du Deine Anwendungen damit nicht erstellt hast, nach allen was ich gelesen hatte, hing es aber irgendwie damit zusammen. Doch kann ich mich auch völlig irren und vielleicht verhält sich alles ganz anders.
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

@Melewo: Es ist ein allgemeines Problem von Windows, dass die Runtimes von Visual Studio installiert werden muessen. Das geht nicht nur Python-Programmen so. In "normalen" Installern kann man darum einen Schritt einfuehren, der die mitzuliefernde Runtime versucht zu installieren. Das ist schon von MS so vorgesehen. Insofern ist das also ein erwartbares Verhalten.
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Bei mir hatte sich Visual Studio im Endergebnis aufgehangen, nichts ging mehr und später fand ich in einer Ecke noch einen Hinweis, dass es Probleme mit meinen Account bei MS geben würde. Habe es danach gelöscht und nur noch meine Version von 2008 auf dem Rechner, da die ohne Account auskommt und läuft. Für die gab es eine Anleitung für die Einstellungen und was ich mit und nach der unter Windows 10 kompilierte, lief im Test auch unter Vista:

http://www.kalmbach-software.de/screenc ... icLinkCRT/

Nur halt nicht für Python zu gebrauchen.
David_123
User
Beiträge: 8
Registriert: Montag 26. Juni 2017, 12:40

Melewo hat geschrieben:Doch, ist es, zumindest nicht einfach. Mit cx_Freeze weiß ich es jetzt nicht, doch mit PyInstaller kam ich nicht klar, weil eine runtime*.dell von MS fehlte. Habe das Problem dann ganz, ganz weit nach hinten verschoben, weil sich Anwendungen auch als Zip-Ordner weitergeben lassen und dass vor Nutzung auf einen Windows-Rechner Python installiert werden muss, kann man ja in einer Beschreibung vermerken.

Erst einmal Python lernen und wenn man dann eine Anwendung geschrieben hat, bei der sich eine Weitergabe mit *.exe lohnt, kann man sich ja immer noch eingehender mit dem Problem beschäftigen. So sehe ich das zumindest zurzeit. Wobei man sich dann auch noch mit den Lizenzen auseinandersetzen muss, in wieweit man überhaupt berechtigt ist, diese oder jene *.dell weiterzugeben. Bei MS und Visual Studio gab es da zumindest mal Beschränkungen bei den kostenlosen Versionen. Auch wenn Du Deine Anwendungen damit nicht erstellt hast, nach allen was ich gelesen hatte, hing es aber irgendwie damit zusammen. Doch kann ich mich auch völlig irren und vielleicht verhält sich alles ganz anders.
Dank Dir.
Ok, da hatte ich es mir in meinem jugendlichen Leichtsinn wohl zu einfach vorgestellt.
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

Nachdem Du Dich in Python eingearbeitet hast, könntest Du Dir Cython ansehen und bis dahin einen Blick auf diese Seite werfen.

https://wiki.python.org/moin/WindowsCompilers

Wie bereits geschrieben, ich verstehe nicht alles und habe es auf "später" verschoben.
Antworten