使用 cx_Freeze 添加文件和文件夹

Adding files and folders using cx_Freeze

我最终从 py2exe 切换到 cx_Freeze,目前我可以说它对我来说非常有用,我只是对它的文档有一些问题,我并不完全清楚,而且它是有争议的,因为周围网上有与我在官方文档中找到的解决方案完全不同的工作解决方案。特别是我没有找到复制位于不同源文件夹和完整文件夹中的单个文件的解决方案。例如,我希望 cx_Freeze 复制从 src/localessrc/build/exe.win-amd64-3.8/localessrc/key.icosrc/build/exe.win-amd64-3.8/key.ico

的所有内容

build_exe 命令的 include_files 选项应该提供您正在寻找的解决方案。根据 cx_Freeze documentation:

list containing files to be copied to the target directory; it is expected that this list will contain strings or 2-tuples for the source and destination; the source can be a file or a directory (in which case the tree is copied except for .svn and CVS directories); the target must not be an absolute path

因此,请在您的 setup.py 文件中尝试以下操作:

from cx_Freeze import setup, Executable

build_exe_options = {"include_files": ["locales", "key.ico"],
                     ...
                    }

setup(
    ...
    options = {"build_exe": build_exe_options},
    ...
)

如果您的 setup.py 文件位于 src 并且您 运行 命令

,那么 cx_Freeze 应该会制作预期的副本
python setup.py build

也从那里开始。