Pythonスクリプトからスタンドアロンの.exeを作成する方法はありますか。py2exeで生成された実行可能ファイルは、pythonXX.dllでのみ実行できます。Pythonランタイムライブラリをインストールする必要のない完全にスタンドアロンの.exeを取得したいと思います。リンクの問題のように見えますが、動的ライブラリの代わりに静的ライブラリを使用しているため、未使用のシンボルを削除するためにストリップを適用することも役立ちます。
何か案が ?
ありがとう。
アレッサンドロ
py2exe の最新バージョンでこれを行うことができます...ファイル
に以下のコードのようなものを追加するだけsetup.py
です (重要な部分は 'bundle_files': 1 です)。
TkInter パッケージをインストールに含めるには、「includes」キーを使用します。
distutils.core.setup(
windows=[
{'script': 'yourmodule.py',
'icon_resources': [(1, 'moduleicon.ico')]
}
],
zipfile=None,
options={'py2exe':{
'includes': ['tkinter'],
'bundle_files': 1
}
}
)
Windows のダイナミック リンカの仕組みにより、.pyd または .dll Python モジュールを使用する場合、スタティック ライブラリを使用できません。Windows に読み込まれた DLL は、シンボル スペースを実行可能ファイルと自動的に共有しないため、Python シンボルを含む別の DLL が必要です。
単一の実行可能ファイルを使用する目的がダウンロード/メール送信などを容易にすることである場合、InnoSetupを使用してpy2exe出力をバンドルすることでこれを解決しました。これは、単一の実行可能ファイルを使用するよりも実際に優れています。これは、あるディレクトリにドロップできる実行可能ファイルを提供するのではなく、正常に動作するWindowsアプリケーションがアンインストーラーを提供し、[プログラムの追加と削除]アプレットに表示されるなどです。Innoはすべてを処理します。これはあなたのためです。
これは最善の方法ではありませんが、.exe ファイルと .dll ファイルの両方を含む実行可能な SFX アーカイブを使用し、ダブルクリックしたときに .exe ファイルを実行するように設定することを検討してください。