2

cx_freeze ビルドには、私のマシンにインストールされているすべてのモジュールが含まれているため、凍結されたビルドは巨大になります。自動検出機能を無効にするには? 小さな PyQt アプリケーションを構築したいだけです。

import sys
from cx_Freeze import setup, Executable

path = sys.path + ["app"]
includes = ["app.core", "app.utils"]
excludes = ["tcl"]
build_exe_options = {
"path": path,
"icon": "resources\icons\clock.ico"}

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(  name = "app",
        version = "1.1",
        description = "My Application",
        options = {"build_exe": build_exe_options},
        executables = [Executable("app.py", base=base,
            targetName="app.exe",
            shortcutName="Application",
            shortcutDir="DesktopFolder")])

また、カスタム モジュールがあり、それぞれに utils サブモジュールがあるため、cx_freeze は間違ったモジュールを配置します。

必要なモジュールの厳密なリストを設定するにはどうすればよいですか?

4

1 に答える 1

1

とてもシンプルでした。このアプリケーションはカスタム モジュールを使用するため、アプリケーション フォルダーをパスに追加しました。

path = sys.path + ["app"]

トリックは、アプリがモジュール「utils」を使用し、OS パスに他の「utils」モジュールがあることです。他の「utils」モジュールは、matplotlib、PIL などの多くのものをインポートします。そのため、次のようにパス環境を変更して問題を解決しました。

path = ["app"] + sys.path

したがって、cx_freeze は、実行可能ファイルをフリーズするときに適切なモジュールを取得します。

于 2013-06-02T12:05:52.100 に答える