我想知道在使用cx_freeze
或其他东西创建Python exe时是否有办法减小文件大小。
之前建议排除不必要的模块,但不是这样,我试图找出是否有可能实际排除Python本身的部分内容。
构建exe时,我发现很多我不需要的东西都包含在构建文件中(几乎所有Lib
目录,很多来自site-packages
等)。我问我们是否可以排除这些?或者更好,我可以只包括我需要的东西。 (需要先找到我需要的东西)
更进一步,是否可以排除Python本身未使用的内置功能?即使这意味着从源代码重建Python?
感谢您的时间。
编辑:也许他们已被排除在外,我可能误解了这种情况。但我不得不手动排除Tkinter
。这使我的问题是如果可以删除更多。
Edit2:以下是脚本文件:
from cx_Freeze import setup, Executable
import os
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
base = None
executables = [Executable("serdar.py", base=base)]
includefiles = ['zombie.png', 'human.jpeg']
packages = []
excludes = ["tkinter"]
options = {
'build_exe': {
'packages':packages,
'excludes':excludes,
'include_files':includefiles,
"optimize": 2
},
}
setup(
name = "serdar",
options = options,
version = "0.01",
description = 'None',
executables = executables
)
答案 0 :(得分:0)
在setup.py中,尝试仅包含您想要的包,例如:
import sys
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}
来自文档的:“一个常见的问题是cx_Freeze没有自动检测到需要复制文件。检测到代码导入的模块,但如果它们是动态加载的 - 例如通过插件系统 - 你有告诉cx_Freeze他们。“