【发布时间】:2020-06-25 12:50:51
【问题描述】:
我在文件夹和 tmx 文件中有 3 个 python 脚本和许多图像,我想将它们制作为单个 .exe 。我无法找到如何将多个 python 脚本和文件夹转换为单个 exe。我只能为单个 python 脚本找到 cxfreeze 和类似的东西。请帮忙。
提前致谢。
【问题讨论】:
我在文件夹和 tmx 文件中有 3 个 python 脚本和许多图像,我想将它们制作为单个 .exe 。我无法找到如何将多个 python 脚本和文件夹转换为单个 exe。我只能为单个 python 脚本找到 cxfreeze 和类似的东西。请帮忙。
提前致谢。
【问题讨论】:
您可以使用add-data 将外部文件添加到您的pyinstaller exe。我用于我的一个 pygame 游戏的示例:
pyinstaller --onedir --clean --name "MyGame" --icon="images/icon.ico" --add-data "images/*.png:images" --add-data "sounds/*.mp3:sounds" --add-data "sounds/*.wav:sounds" --add-data "fonts/*.ttf:fonts" main.py
【讨论】:
在 cxfreeze 中创建 setup.py 文件。您必须将多个 pyhton 文件作为 cxfreeze 可执行文件中的列表传递。参考这个帖子 -
Python cx_Freeze for two or more python files (modules)
对于像图像这样的单独文件,您必须明确包含这些文件。下面是一个在其中一个项目上为我工作的例子-
from cx_Freeze import setup, Executable
build_exe_options = {'packages': ['os', 'tkinter', 'matplotlib.backends.backend_svg', 'subprocess'],
'namespace_packages': ['mpl_toolkits'],
'include_files':['input3.json', 'SF.xlsx', 'SF logo.ico', 'Operative Temperature.pkl',
'Rect_icon.png', 'Soltissim logo.png', 'SF full logo.jpg', 'IES logo.jpg']}
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
setup ( name = 'Soltissim',
version = '2',
description = 'SF GUI',
options = {'build_exe': build_exe_options},
executables = [Executable('Soltissim.py', base=base, icon='SF logo.ico'),
Executable('SF_English.py', base=base, icon='SF logo.ico'),
Executable('SF_French.py', base=base, icon='SF logo.ico')])
此外,如果您想从 setup 创建一个构建,然后可以在像 inno 这样的程序中使用,请在终端中使用以下命令 - python setup.py build
如果你想直接从 setup 创建一个简单的 windows 安装程序,使用 - python setup.py bdist_msi
【讨论】: