gpt4 book ai didi

python - cx_freeze & 捆绑文件

转载 作者:行者123 更新时间:2023-11-28 21:56:53 26 4
gpt4 key购买 nike

目前我正在使用 pyinstaller 来捆绑我的 python 应用程序。我同样迁移到 pyGObject(由于 pygtk 被折旧)。

现在 pyinstaller 不支持 pyGObject 并且我还没有弄清楚所需的钩子(Hook)...... pyinstaller 的另一个缺点是它如何捆绑到一个单一的可执行文件中 - 它导致公司安装的病毒扫描程序检查相当每次运行 exe 时都集中 ==> 启动速度很慢。

由于 pyGObject 和 py3 的支持,考虑使用 cx_freeze 我注意到它没有单一可执行选项。如果可以清理工作目录,这本身就不是问题,无论是通过将 pyd/dll 捆绑到第二个 zip 还是子目录中。

四处搜索(stackoverflow 和其他站点),它被认为可以完成,但我没有得到预期的结果。有什么想法吗?

setup.py 是基于这个:http://wiki.wxpython.org/cx_freeze

最佳答案

确定解决了:

1) 安装.py

import sys
from cx_Freeze import setup, Executable
EXE1 = Executable(
# what to build
script = "foo.py",
initScript = None,
base = 'Win32GUI',
targetDir = "dist",
targetName = "foo.exe",
compress = True,
copyDependentFiles = True,
appendScriptToExe = True,
appendScriptToLibrary = False,
icon = 'foo.ico'
)

setup(
version = "9999",
description = "...",
author = "...",
name = "...",

options = {"build_exe": {"includes": includes,
"excludes": excludes,
"packages": packages,
"path": sys.path,
"append_script_to_exe":False,
"build_exe":"dist/bin",
"compressed":True,
"copy_dependent_files":True,
"create_shared_zip":True,
"include_in_shared_zip":True,
"optimize":2,
}
},

executables = [EXE1]
)

2) foo.py 头文件:

import os
import sys

if getattr(sys,'frozen',False):
# if trap for frozen script wrapping
sys.path.append(os.path.join(os.path.dirname(sys.executable),'bin'))
sys.path.append(os.path.join(os.path.dirname(sys.executable),'bin\\library.zip'))
os.environ['TCL_LIBRARY'] = os.path.join(os.path.dirname(sys.executable),'bin\\tcl')
os.environ['TK_LIBRARY'] = os.path.join(os.path.dirname(sys.executable),'bin\\tk')
os.environ['MATPLOTLIBDATA'] = os.path.join(os.path.dirname(sys.executable),'bin\\mpl-data')

关于python - cx_freeze & 捆绑文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20754180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com