在windows下把所需要的python3 pyinstaller打包exe文件,首先大家肯定都已经安装好了python环境,但是要提醒的一点就是 安装的python环境,不要使用python3 自带的虚拟环境。不要使用python3 自带的虚拟环境!不要使用python3 自带的虚拟环境!重要的事情说三边 pyinstaller 官方文档
pip install pyinstaller
注意:安装Pyinstaller过程中是否自动安装pywin32和pypiwin32,没有安装使用以下命令安装 pywin32 pypiwin32
pip install pywin32 pip install pypiwin32
pyinstaller yourprogram.py
就可以看到build和dist文件夹,.exe就在文件夹dist目录下面
之后
pyinstaller yourprogram.spec
例如: 一个exe文件,去除命令行黑框,设置exe图标 (图标放在根目录下)
pyinstaller --onefile --windowed -i favicon-logo.ico myscript.py
注:
–noconsole 没有命令框
–onefile 一个文件
–windowed 隐藏代码-F 选项可以打出一个exe文件,默认是 -D,意思是打成一个文件夹。
-w 选项可以打桌面程序,去掉命令行黑框
-i 可以设置图标路径,将图标放在根目录:
pyinstaller yourprogram.spec
这个是打成单一exe文件的spec文件
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['firstapp.py'],
pathex=['G:\\python\\firstapp'],
binaries=[],
datas=[("recordtool\\bridge.dll",'recordtool'),("recordtool\\brihttpsvr.dll",'recordtool'),("recordtool\\qnviccub.dll",'recordtool')],
hiddenimports=[],
hookspath=[],
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,
a.binaries,
a.zipfiles,
a.datas,
[],
name='帮家师傅录音盒子',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False , icon='favicon-logo.ico')
binaries 二进制文件
datas 打包进去的资源文件
(‘res’,‘res’) 文件夹到根目录的文件夹
(“recordtool\bridge.dll”,‘recordtool’) .dll文件到根目录的recordtool文件目录下面
icon 是图片路径
console 是否显示命令框
debug 是否是调试模式
打包成文件夹的形式
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['firstapp.py'],
pathex=['G:\\python\\firstapp'],
binaries=[],
datas=[("recordtool\\bridge.dll",'recordtool'),("recordtool\\brihttpsvr.dll",'recordtool'),("recordtool\\qnviccub.dll",'recordtool')],
hiddenimports=[],
hookspath=[],
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='软件名字',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=False , icon='favicon-logo.ico')
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='firstapp')
注:coll 是文件夹的选项,如果你的.py文件不是中文的话,name属性尽量不改,不然图标就不正常了。
解决方案:以下两种方案任选其一
遇到 ** ModuleNotFoundError: No module named ‘win32com’**
pip install pywin32 or pip install pypiwin32