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
これが可能な答えの助けになることを本当に願っています。