【发布时间】:2020-06-15 20:50:27
【问题描述】:
假设numpy_example.py 是:
import numpy as np
a = np.array([1, 2, 3])
print(a)
-
使用 Python 2.7.9,使用 cxFreeze 4.3.3 生成可执行文件,其中:
"C:\python27\python.exe" "C:\python27\Scripts\cxfreeze" numpy_example.py --target-dir=.\cxfreeze_x64_py2 --base-name=Win32GUI --target-name=test.exe --exclude-modules=Tkinter,scipy,Crypto,_ssl,bz2,_yaml --include-modules=lxml._elementpath提供了 25 个文件(仅
.dll、.pyd和.exe文件),总共 71 MB,没有子文件夹: -
使用 Python 3.7.6,使用 cxFreeze 6 生成可执行文件,使用相同的命令行命令会产生总共 8533 个文件,总共 374 MB!
特别是,
Lib子文件夹包含许多未用于此项目的库:此外,在 Python 2 版本中,Numpy 被打包到 9 个
.pyd文件中(仅此而已),而在 Python 3 版本中,它被拆分为许多文件和子文件夹。
问题:cx_freeze 发生了什么变化,导致打包效率降低?
以及如何在 Python 3 中使用cx_freeze 获得与使用 Python 2 类似的包装?
【问题讨论】:
-
我的工作流程是拥有一个单独的构建环境,其中只安装了运行脚本所需的最少软件包。这很可能不是一个万能的解决方案,但在我的情况下是一个可用的解决方法。
-
numpy 有多少依赖项
标签: python python-3.x python-2.7 cx-freeze