前言:
之前开发一些小的工具的时候,为了方便打包exe的时候方便,基本上能写一个文件就写一个文件了,但是后来发现写一个文件里面,打包命令是简单了但是写起来是真的麻烦,所以今天更新一下打包多个py文件为exe应用程序的步骤和命令。
一、打包单个文件为exe
Pyinstaller -F -w -i c.ico demo.py
以下是对命令 `pyinstaller -F -w -i c.ico demo.py` 的解释:
- **`pyinstaller`**: 这是 PyInstaller 命令的入口点,用于打包 Python 程序。
- **`-F`**: 这个选项告诉 PyInstaller 将所有文件打包成一个单独的可执行文件(one-file bundle)。这个选项是 `--onefile` 的简写。
- **`-w`**: 这个选项用于打包 Windows GUI 应用程序。它会在 Windows 上创建一个窗口程序,并且在运行时不会显示控制台窗口。如果打包的是命令行程序,不需要使用这个选项。这个选项是 `--windowed` 或 `--noconsole` 的简写。
- **`-i c.ico`**: 这个选项用于指定生成的可执行文件的图标。`c.ico` 是图标文件的路径,通常是 `.ico` 格式的文件。这个选项是 `--icon` 的简写。
- **`demo.py`**: 这是你要打包的主 Python 脚本文件。
### 总结
这个命令的完整解释是:
- 使用 PyInstaller 将 `demo.py` 打包成一个单独的可执行文件。
- 可执行文件将在 Windows 上运行,并且不会显示控制台窗口。
- 可执行文件将使用 `c.ico` 作为图标。
### 运行该命令
运行之后,PyInstaller 会生成一个 `dist` 目录,其中包含打包好的可执行文件。
### 示例文件
确保 `demo.py` 是你的主 Python 脚本,`c.ico` 是你要使用的图标文件。你可以根据需要更改这些文件名和路径。
这样,你将获得一个带有图标的单个可执行文件,并且在运行时不会显示控制台窗口。
二、打包多个文件为exe
1. 创建 spec 文件
使用 PyInstaller 创建一个 .spec
文件,这个文件定义了如何打包你的项目。可以通过以下命令生成:
pyinstaller --specpath . --onefile main.py
这将生成一个名为 main.spec
的文件,你可以对其进行修改以包含其他文件。
2. 编辑 spec 文件
打开生成的 main.spec
文件,进行以下修改:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['main.py', 'automation.py', 'utils.py'], # 添加你的所有脚本
pathex=['.'], # 设置为你的项目路径
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True, # 如果你希望是控制台程序,使用 console=True;如果是窗口程序,则使用 console=False
)
coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='main',
)
app = BUNDLE(
coll,
name='main.exe',
icon=None, # 如果有图标文件,可以指定图标文件路径
)
在 Analysis
部分添加你的所有脚本文件,例如 ['main.py', 'automation.py', 'utils.py']
。
3. 打包项目
使用以下命令打包项目:
pyinstaller main.spec
4. 运行打包后的可执行文件
打包完成后,你可以在 dist
目录下找到生成的 main.exe
文件,双击运行即可。
额外提示
- 如果你的项目包含了非 Python 文件(例如配置文件、数据文件等),需要在
datas
部分添加这些文件。 - 如果你使用了第三方库,确保在
hiddenimports
部分添加这些库的导入声明。
这个过程将你的多个 Python 文件打包成一个单独的可执行文件,方便分发和使用。