安装:pip3 install pyinstaller -i https://pypi.douban.com/simple
安装测试: pyinstaller --version 显示pyinstaller版本
了解几个常用命令
参数 | 用处 |
-F | 将程序打包成一个文件 |
-w | 不带控制台---不能看出错信息 |
-i | 添加程序图标 |
我们将需要打包的test.py文件放到桌面上,之后打开命令行窗口,cd到桌面目录,输入pyinstaller -F -w test.py
结束后我们会发现在桌面上多了两个文件夹和一个spec文件:而我们想要的可执行程序就在dist文件夹中,双击打开就是我们的程序了
上面打包的可执行文件使用的是默认的图标,我们接下来打包时添加-i参数来给程序加个图标(请注意该用法只对Windows系统有效):
将图标ico放在桌面,跟test.py同路径。同样打开命令行窗口,cd到桌面,输入pyinstaller -F -w -i tu.ico test.py 按回车开始打包
打包代码---推荐:
新建一个文件,执行以下代码:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from PyInstaller.__main__ import run
# -F:打包成一个EXE文件
# -w:不带CMD输出控制台.如果打包出错,需要查看错误信息,就需要这个cmd窗口
# --paths:依赖包路径
# --icon:图标
# --noupx:不用upx压缩
# --clean:清理掉临时文件
if __name__ == '__main__':
opts = ['-F','-w',
# '--paths=D:\\Program Files\\Python\\Lib\\site-packages\\PyQt5\\Qt\\bin',
# '--paths=D:\\Program Files\\Python\\Lib\\site-packages\\jpype',
# '--noupx',
# '--clean',
# '--hidden-import=numpy',
'成绩分析.py']
run(opts)
unable to find qt5core.dll on path--错误的解决:
新建 fix_qt_import_error.py 文件:
# Fix qt import error
# Include this file before import PyQt5
import os
import sys
import logging
def _append_run_path():
if getattr(sys, 'frozen', False):
pathlist = []
# If the application is run as a bundle, the pyInstaller bootloader
# extends the sys module by a flag frozen=True and sets the app
# path into variable _MEIPASS'.
pathlist.append(sys._MEIPASS)
# the application exe path
_main_app_path = os.path.dirname(sys.executable)
pathlist.append(_main_app_path)
# append to system path enviroment
os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)
logging.error("current PATH: %s", os.environ['PATH'])
_append_run_path()
然后在主程序中导入 import fix_qt_import_error #注意:要在pyqt模块之前导入