2016-05-20 16 views
1

Ich habe das nächste Problem. Während der letzten 3 Monate habe ich eine Anwendung in Python 3.5 erstellt, um Koryphäen zu testen. Für diese Anwendung habe ich die nächsten Bibliotheken, "tkinter", "sys", "threading", "os", "time", "shuthil" benutzt, die im Python 3.5 Hauptinterpreter enthalten sind. Zusätzlich zu diesen Systembibliotheken verwende ich "pyserial", "PyGreSQL", "PIL", "win32com" und "qrcode".Python 3.5 App zu .exe oder kopieren Sie Bibliotheken auf einen anderen PC

Das Programm wird auf vielen PCs verwendet, daher muss ich den gesamten Code kompilieren, um auf jedem installierten PC eine voll funktionsfähige Anwendung zu erstellen. Ich habe versucht mit PyInstaller, aber es funktioniert nicht für mich, aus einem Grund, den ich nicht verstehe, kann ich es nicht funktionieren.

Also, da ich denke, gibt es keine Möglichkeit, meine Python 3.5 App zu einer EXE "kompilieren" (alle Lösungen funktionieren nur in Python 2.x), denke ich, die Lösung ist nur zwei Möglichkeiten zu lösen.

Die erste Lösung ist, den Python35-Ordner zu kopieren, der alle Bibliotheken, die ich bereits installiert habe, in einen anderen PC bekam (weil jedes einzelne, das ich installiert habe, mir bei der Installation Probleme bereitet, besonders pygresql) kann einen "Installer" erstellen, der diesen Python35-Ordner in den neuen PC überschreibt und ein Verknüpfungssymbol auf dem Desktop erstellt, auf dem das .py-Skript ausgeführt wird. (Simulieren Sie, dass eine APP installiert ist).

Oder die zweite Lösung, neu schreiben den gesamten Code in 2.x Syntax und versuchen, erneut zu installieren Bibliotheken für Python 2.x und machen das alles wieder funktionalen Code ...

welches Sie mir empfehlen .. Oder wenn du irgendeinen Weg weißt, wie ich das machen könnte ... Ich wäre sehr dankbar, wenn du mir helfen würdest.

Danke!

Antwort

0

Ich habe CX_Freeze auf meine Programme in der Vergangenheit verwendet, bis jetzt habe ich es nur mit Python 3.4.3 verwendet, aber ich sehe keinen Grund, warum es mit Python 3.5 nicht funktionieren sollte.

Sie können es auch mit pip installieren:

pip install CX_Freeze

here für ein Tutorial ansehen.

Ich bin im Moment unterwegs, also werde ich den Code kommentieren, den ich benutze, wenn ich meinen Computer habe.

Ich hoffe, das hilft.

EDIT:

Hier ist eine Version des Codes (für Batch):

set PATH=%PATH%;C:\Python34\ python "setup.py" build pause

diesen Code zu verwenden, benötigen Sie einen setup script Hinweis auf das Programm zu machen, ein Beispiel ist unten:

import sys 
from cx_Freeze import setup, Executable 

# Dependencies are automatically detected, but it might need fine tuning. This example will include the os package, and omit the tkinter package 
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]} 

# GUI applications require a different base on Windows (the default is for a 
# console application). 
base = None 
if sys.platform == "win32": 
    base = "Win32GUI" 

setup( name = "test", 
     version = "0.1", 
     description = "My GUI application!", 
     options = {"build_exe": build_exe_options}, 
     executables = [Executable("test.py", base=base)]) 

EDIT2 :

Obwohl der obige Code funktioniert, der Code ich benutze, ist:

cxfreeze "%cd%\File.py" --target-dir "%cd%\File\"

+0

Ich werde versuchen, cx_freeze zu verwenden, um die "Compilation" zu tun. Außerdem werde ich auf deinen Code warten und hoffen, dass du so bald wie möglich posten kannst. Danke –

+0

Ok, also, ich suchte und cx_freeze funktioniert nur auf Python 3.4 ... Also ... Ich denke, ich brauche den Code nicht neu schreiben, aber stattdessen muss ich den Python-Interpreter und alle neu installieren Bibliothek angepasst an diese Version von Python ... –

+0

@ DavidGonzálezBlazman Siehe meine Bearbeitung für den Code. Es sollte funktionieren, aber wie ich in der Bearbeitung erwähnt habe, werde ich für ein paar Stunden nicht nach Hause kommen oder auf einen Computer zugreifen, der nicht mein Telefon ist. – sonrad10