2010-03-14 18 views
7

Ich bin auf der Suche nach einer Möglichkeit, den Python-Interpreter mit meiner Anwendung (auch in Python geschrieben), so dass es nicht Python auf dem Rechner installiert muss.Embed Python Interpreter in einer Python-Anwendung

Ich suchte Google und fand eine Reihe von Ergebnissen darüber, wie der Python-Interpreter in Anwendungen in verschiedenen Sprachen geschrieben, aber nichts für Anwendungen geschrieben in Python selbst ... Ich muss nicht meinen Code "verstecken" oder Machen Sie eine Binärdatei wie cx_freeze, ich möchte nur nicht, dass meine Benutzer Python installieren müssen, um meine App zu verwenden, das ist alles.

Danke.

+0

Duplizieren: http://stackoverflow.com/questions/106725/how-to-bundle-a-python-application-include-dependencies-for-windows, http://stackoverflow.com/questions/2933/an -executable-python-app, http://stackoverflow.com/questions/1950218/distributing-python-programs, etc. –

+0

schließlich ja, aber zuerst wollte ich nicht meine App in eine Binärdatei einfrieren, auch wenn es Endlich erschien mir die einfachste Lösung um meine App zu verteilen. – MatToufoutu

Antwort

9

Für die Verteilung auf Maschinen unter Windows, schauen Sie in py2exe

py2exe is a Python Distutils extension which converts Python scripts 
into executable Windows programs, able to run without requiring a 
Python installation 

Für die MacIntosh gibt es py2app (aber ich bin nicht mit ihm vertraut)

Und für Windows und Linux, gibt es bbfreeze oder auch pyinstaller

+0

Danke, ich merke, dass trotz der Tatsache, dass ich meinen Quellcode mit meiner App bereitstellen möchte, der einfachste Weg dies zu tun (wie Ignacio sagte) immer noch sein würde, meine App in eine Binärdatei einzufrieren und auch den Quellcode zu versenden damit. – MatToufoutu

+0

Ja, mit diesem Ansatz haben Sie das Beste aus beiden: eine eigenständige Binärdatei und den Quellcode, der innerhalb des Interpreters verwendet werden kann, würde der Benutzer dies tun wollen und/oder würde er/sie entscheiden, das Programm zu modifizieren. – mjv

2

Sie benötigen einige Art der ausführbaren Datei, um Python zu starten. Kann auch der sein, in dem deine App eingefroren wurde.

Die Alternative besteht darin, die ausführbare Datei, die Bibliothek und Teile der stdlib, die Sie benötigen, in ein privates Verzeichnis zu kopieren und das für Ihre App aufzurufen.

2

Eine eingefrorene Binärdatei mit einem Dienstprogramm wie cx_freeze oder py2exe ist wahrscheinlich der einfachste Weg, dies zu tun. Auf diese Weise müssen Sie nur die ausführbare Datei verteilen. Ich weiß, dass Sie es vorziehen, keine Binärdatei zu verteilen, aber wenn das ein Problem ist, können Sie den Benutzern immer die Möglichkeit geben, die Quelle herunterzuladen und von einem Interpreter auszuführen.

0

Für Windows: py2exe

Für Linux: Freeze

Full Disclosure: Ich habe nur über diese lesen, nie verwendet. Vielleicht können einige, die Kommentare abgeben können?

0

Werfen Sie einen Blick auf http://www.python-packager.com, es ist ein kostenloser Webservice zum Erstellen von redutrutable Python-Binärdateien auf Pyinstaller basiert. Ich habe es verwendet, um Apps für Windows zu erstellen, und es ist sehr einfach zu bedienen und funktioniert auch mit GUI-Apps.

+0

Website ist weg, es leitet jetzt zu http://pythoncentral.org/ –