# python programm in exe umwandeln [solved]

## tazinblack

Hallo zusammen,

ich brauch was mit dem ich aus python direkt ne unter Windows lauffähige exe Datei machen kann.

Ich hab jetzt py2exe versucht, dass lässt sich ohne VisualStudio bei mir nicht funktionierend installieren.

Außerdem hab ich pyinstaller versucht. Dieser baut mir zwar aus meinem Hello_World.py zwar eine Hello_World.exe aber diese gibt mit dann keine "Hello World" Ausgabe mehr.

Sehr toll das Ganze! ?!

Könnt Ihr mir da weiterhelfen?

----------

## Knieper

http://www.nuitka.net/blog/nuitka-a-python-compiler/nuitka-releases/ fällt mir noch ein, aber nie selbst benutzt. Ansonsten nimm einfach eine andere Sprache, wozu gibt es so viele...

----------

## tazinblack

 *Knieper wrote:*   

> http://www.nuitka.net/blog/nuitka-a-python-compiler/nuitka-releases/ fällt mir noch ein, aber nie selbst benutzt. Ansonsten nimm einfach eine andere Sprache, wozu gibt es so viele...

 

Das überleg ich auch schon seit längerem. Sollte eine Sprache sein, die auf Linux, Unix und Windows vorhanden ist.

Außerdem sollten die Programme ohne Interpreter oder sonst was lauffähig sein, also irgend eine Sprache mit der man direkt Binärcode erzeugen kann.

Ich hab keine Lust immer erst noch was zu installieren.

In C hab ich auch schon einiges gemacht, aber das ist mir zu rudimentär. Ich will nicht jedes Mal das Rad neu erfinden.

Mit Perl kann man zwar auch exefiles machen in Windows, allerdings finde ich total kryptisch und es gibt immer 300 mögliche Wege zum Ziel.

Mit PHP komme ich gut klar und man bekommt schnell was gebaut, allerdings brauch ich jedes Mal den Interpreter. Und langsam ist es auch bis der mal läuft.

Also was schlägst Du vor?

PS: Ich hab das hingekommen aus Python ein exe zu machen. Allerdings ist das auch langsam, wobei es für viele Zwecke wohl ausreicht.

Edit: Für die Leute, die auch nach so was suchen:

pyinstaller installieren nach Anleitung

python pyinstaller.py <Skript> --onefile --console

So tut zu mindest mein hello_world.

----------

## Knieper

 *tazinblack wrote:*   

> Also was schlägst Du vor?

 

Die Wahl der Programmiersprache hängt immer vom Anwendungszweck ab. Wenn Du mit Haskell nicht warm wirst, nimm Ocaml oder Ada.

----------

## Necoro

 *tazinblack wrote:*   

> Außerdem sollten die Programme ohne Interpreter oder sonst was lauffähig sein, also irgend eine Sprache mit der man direkt Binärcode erzeugen kann.

 

Und was bringt dich da zu Python? Diese "py zu exe" werden wahrscheinlich eh nur den ganzen Python-Interpreter statisch in die exe packen.

Wenn du viel unter Windows machst, wäre evtl C# eine Idee. Die Sprache (und .NET allgemein) hat einige nette Konzepte.

 *Quote:*   

> Wenn Du mit Haskell nicht warm wirst, nimm Ocaml oder Ada.

 

Ich hab damit gerechnet das so eine Antwort von dir kommt ^^. Ich glaube, dass funktionale Sprachen ihre Anwendungsgebiete haben -- diese liegen aber nicht zwangsmäßig dort, wo Otto-Normal-Programmierer was machen will. In manchen Sachen ist ein globaler veränderlicher State einfach viiiiiel schöner als das Durchschleifen von 17-Tupeln.

----------

## Knieper

 *Necoro wrote:*   

> Diese "py zu exe" werden wahrscheinlich eh nur den ganzen Python-Interpreter statisch in die exe packen.

 

Kommt drauf an (siehe Verweis), pyinstaller ist allerdings noch viel simpler. Der packt alles, entpackt beim Start, führt aus und löscht die Dateien wieder (wenn das Programm nicht vorher abgeschossen wird).

 *Quote:*   

> Wenn du viel unter Windows machst, wäre evtl C# eine Idee. Die Sprache (und .NET allgemein) hat einige nette Konzepte.

 

Ich darf zitieren:

 *Quote:*   

> Sollte eine Sprache sein, die auf Linux, Unix und Windows vorhanden ist.

 

Und Mono ist nicht benutzbar, obwohl das gern behauptet wird.

 *Quote:*   

>  *Quote:*   Wenn Du mit Haskell nicht warm wirst, nimm Ocaml oder Ada. 
> 
> Ich hab damit gerechnet das so eine Antwort von dir kommt ^^. Ich glaube, dass funktionale Sprachen ihre Anwendungsgebiete haben -- diese liegen aber nicht zwangsmäßig dort, wo Otto-Normal-Programmierer was machen will.

 

Haskell - funktional und momentan die modernste verwendbare Allzwecksprache

Ocaml - funktional, objektorientiert, wahlweise mit veränderlichem Zustand

Ada - objektorientiert

 *Quote:*   

> In manchen Sachen ist ein globaler veränderlicher State einfach viiiiiel schöner als das Durchschleifen von 17-Tupeln.

 

Irgendwas machst Du falsch. Wer verbreitet eigentlich immer das Gerücht, dass es keinen Zustand in funktionalen Sprachen gibt? Es geht lediglich um die Vermeidung von Nebenwirkungen.

----------

## tazinblack

Och kommt schon,

nicht schon wieder! Genau diese Diskussion hatten wir doch schon mal.

All diese Sprachen haben sicherlich ihre Daseinsberechtigung.

Und ich bin mir bewusst, dass python an dieser Stelle auch nur ein Krückstock ist.

C# ist leider auch nicht plattformübergreifend.

Vielleicht sollte ich mich doch lieber auf C konzentrieren oder C++ und mir einfach ein paar Basisklassen schreiben, 

die je nach compiler (Plattform) dann so oder eben anders arbeiten. Also z.B. die / in den Pfaden unter Win dann eben zu \ macht, etc.

Dann wäre das Ganze wenigstens schnell.

----------

## Necoro

 *Quote:*   

> Irgendwas machst Du falsch. Wer verbreitet eigentlich immer das Gerücht, dass es keinen Zustand in funktionalen Sprachen gibt?

 

Mhm ... niemand? Ich sprach von "globalem Zustand". Per Definition einer Funktion musst du den Zustand halt immer herumreichen. Das ist tendenziell nervig.

 *Quote:*   

> Es geht lediglich um die Vermeidung von Nebenwirkungen.

 

Aber eben die Nebenwirkungen will man ja manchmal haben.  :Smile: 

----------

## Knieper

 *tazinblack wrote:*   

> All diese Sprachen haben sicherlich ihre Daseinsberechtigung.

 

Nur seltsam, dass man ständig dort kopiert und sich über "neue" Features in Java, C#, F# etc. freut, wenn man all das schon vorher haben kann.

 *Quote:*   

> Vielleicht sollte ich mich doch lieber auf C konzentrieren oder C++

 

Der Haskell-Compiler spuckt auch C aus oder LLVM bitcode, und C++ benutzt man nicht, solange man keine Waffe an der Schläfe hat.

 *Quote:*   

> Also z.B. die / in den Pfaden unter Win dann eben zu \ macht, etc.

 

Also alles, was System.FilePath automatisch macht...

 *Quote:*   

> Dann wäre das Ganze wenigstens schnell.

 

Und mit hoher Wahrscheinlichkeit mit einigen Fehlern behaftet. Haskell parallelisiert übrigens nahezu automatisch, da gammeln die anderen Kerne nicht nur rum.

Ihr schießt Euch doch selbst ins Knie mit diesem altmodischen Scheiß.

----------

## Knieper

 *Necoro wrote:*   

> Ich sprach von "globalem Zustand"

 

Dafür gilt dasselbe.

 *Quote:*   

>  *Quote:*   Es geht lediglich um die Vermeidung von Nebenwirkungen. 
> 
> Aber eben die Nebenwirkungen will man ja manchmal haben. 

 

Und genau dann sagst Du wo Du sie akzeptierst und siehst es schon am Typ und nicht daran, dass Dein Programm abstürzt.

----------

