3

私はcx_Freezeを使用してPythonプログラムを実行可能ファイルにコンパイルしていますが、問題なく動作しますが、問題はプログラムを1つのEXEにコンパイルせず、それらを.exeファイルに変換し、それ.dllを含むファイル全体python32.dllに必要です実行するプログラム。

これらのファイルをすべて 1 つのファイルにパッケージ化する方法を知っている人はい.exeますか? プログラムを起動するために DLL を一時ディレクトリにコピーするだけのファイルではなく、単純な EXE ファイルを使用したいと考えています。

編集:これはPython 3を参照しています

4

3 に答える 3

1

少なくとも2つのオプションがあります:PyInstallerまたはpy2exe

py2exeには、bundle_filesというオプションがあり、次のように設定できます。

  • 3(デフォルト):バンドルしないでください。
  • 2:Pythonインタープリター以外のすべてをバンドルします。
  • 1:Pythonインタープリターを含むすべてをバンドルします。

これがsetup.pyのサンプルです:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(
    options = {'py2exe': {'bundle_files': 1}},
    windows = [{'script': "single.py"}],
    zipfile = None,
)

このアプローチでは、一時的な場所にファイルを抽出する必要はありません。

于 2012-11-21T20:26:11.150 に答える
1

通常、Python スクリプトを 1 つのファイルにコンパイルする場合は、Pyinstaller を使用する方が簡単です。

pyinstaller.py program.py --onefile

ここのドキュメントを参照してください: http://www.pyinstaller.org/export/v2.0/project/doc/Manual.html?format=raw

于 2012-11-21T20:40:12.320 に答える
0

innosetupを試しましたか?cxfreeze の出力からインストーラー ファイルを作成できます。すべてを 1 つのファイルにまとめるオプションがどこかにあるかもしれません。

于 2012-12-20T07:30:23.673 に答える