我一直在试图将python代码编译成一个exe文件,但我没有设法正确地做到这一点。将python代码编译为一个exe文件
我试过pyinstaller,这是代表.spec文件:
# -*- mode: python -*- a = Analysis([os.path.join(HOMEPATH,'support\\_mountzlib.py'), os.path.join(HOMEPATH,'support\\useUnicode.py'), 'programs\\toolbox.py'], pathex=['C:\\Users\\Ronaldo\\Desktop\\Python\\pyinstaller']) pyz = PYZ(a.pure) exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, name=os.path.join('dist', 'program.exe'), debug=False, strip=False, upx=True, console=False)
Pyinstaller编译精细,创建了工作, 但显然其他用户没有一个单一的exe文件安装了python的相同版本 (2.7.2)无法运行它。不会给出任何错误,它根本不会启动。我已经通过将 发送给几个朋友来尝试它,并且也尝试在虚拟机上尝试。
试过py2exe。编译时(所有库旁边的文件夹 以及其他文件)工作正常。我试着 编译成单个文件,但编译的exe文件给了我一个“ toolbox.exe已停止工作”的错误。这里的错误报告, 以防万一,可能是有用的:
Problem signature: Problem Event Name: APPCRASH Application Name: toolbox.exe Application Version: 0.0.0.0 Application Timestamp: 49180193 Fault Module Name: StackHash_0a9e Fault Module Version: 0.0.0.0 Fault Module Timestamp: 00000000 Exception Code: c0000005 Exception Offset: 01b61fcb OS Version: 6.1.7601.2.1.0.256.1 Locale ID: 1033 Additional Information 1: 0a9e Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 Additional Information 3: 0a9e Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
的setup.py文件是:
from distutils.core import setup import py2exe, sys, os sys.argv.append('py2exe') setup( options = {'py2exe': {'bundle_files': 1}}, windows = [{'script': "toolbox.py"}], zipfile = None, ) single.py file:
而这里的single.py:
import os, sys, ctypes ctypes.windll.user32.MessageBoxA(0, "curdir: %s\nexedir: %s\nsys.winver: %s" % ( os.path.abspath(os.curdir), os.path.abspath(os.path.dirname(sys.argv[0])), sys.winver, ), "%s - Message" % os.path.basename(sys.executable), 0x30 )
我写的程序使用了tkinter,sys,random和win32clipboard(pywin)模块。 我在做什么错? 还有其他更好的编译器吗?
更新:按照Joël的提示,我使用调试和控制台模式编译。仍然没有为没有python 2.7的用户工作。这是错误信息:
C:\Users\XXXXX\Desktop>program.exe
Found embedded PKG: C:\Users\XXXXX\Desktop\program.exe
Extracting binaries
Setting up to run child
Setting magic environment var
Creating child process
Waiting for child process to finish...
Found embedded PKG: C:\Users\XXXXX\Desktop\program.exe
workpath: C:/Users/XXXXX/AppData/Local/Temp/_MEI14042/
manifestpath: C:/Users/XXXXX/AppData/Local/Temp/_MEI14042/program.exe.manifest
Activation context created
Activation context activated
C:\Users\XXXXX\AppData\Local\Temp\_MEI14042\python27.dll
Manipulating evironment
PYTHONPATH=C:/Users/XXXXX/AppData/Local/Temp/_MEI14042;C:/Users/XXXXX/Desktop
importing modules from CArchive
extracted iu
extracted struct
extracted archive
Installing import hooks
outPYZ1.pyz
我真的希望这可以作为可能的答案的帮助。
“无法运行它” - 你得到什么错误? –
你使用任何大的第三方库?值得注意的是,Tkinter需要一个特殊的标志来与pyinstaller – Shish
@PetrViktorin Viktorin一起工作没有任何错误。它只是不运行。 – Thurax