我正在将一套python脚本编译成可执行文件。我使用cx\u Freeze就是为了这么做。你知道吗
比较常见的问题是lib
文件夹变得非常大。我已经排除了尽可能多的模块,以减少这个大小,但它仍然是相当大的。你知道吗
由于我正在编译多个可执行文件,是否可以有一个共享的lib
文件夹供它们引用以减小磁盘大小?你知道吗
示例setup.py
如下:
import sys, os
from cx_Freeze import setup, Executable
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
executables = [
Executable('MYSCRIPT.py', base=base)
]
additional_mods = ["numpy.core._methods", "numpy.lib.format"]
exclude_mods = ["babel", "scipy", "PyQt5", "tornado", "zmq", "sphinx", "sphinx_rtd_theme", "psutil", "notebook", "nbconvert", "lxml", "cryptography", "bottleneck", "matplotlib"]
build_exe_options = {"excludes": exclude_mods, "includes": additional_mods, "optimize": 1}
os.environ['TCL_LIBRARY'] = r'C:\ProgramData\Anaconda3\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\ProgramData\Anaconda3\tcl\tk8.6'
setup(name='MYSCRIPT',
version='0.1',
includes = ['os'],
options = {"build_exe": build_exe_options},
description='MYSCRIPT',
executables=executables
)
是的,这是可能的。诀窍是使用一个
setup.py
将多个脚本添加到executables
列表中。你知道吗以以下两个都使用numpy的基于控制台的脚本为例:
main1.py
:main2.py
:您可以使用以下
setup.py
使用cx\u freeze立即冻结此脚本:然后会得到两个可执行文件
main1.exe
和main2.exe
,它们共享包含numpy的相同lib
文件夹。你知道吗相关问题 更多 >
编程相关推荐