网站优化推广公司,企业网站建设套餐 网络服务,网站收录提交接口,站内推广和站外推广的区别python的exe程序打包制作 python打包的概念python打包的模块导入模块安装验证基本语法命令参数文件夹模式单文件模式资源嵌入exe更改图标启动画面#xff08;闪屏#xff09;禁用异常提示 python打包的概念
将普通的*.py程序文件打包成exe文件。exe文件即可执行文件#xf… python的exe程序打包制作 python打包的概念python打包的模块导入模块安装验证基本语法命令参数文件夹模式单文件模式资源嵌入exe更改图标启动画面闪屏禁用异常提示 python打包的概念
将普通的*.py程序文件打包成exe文件。exe文件即可执行文件打包后的*.exe应用不用依赖python可以在他人的电脑上运行。 PyInstaller 制作出来的执行文件并不是跨平台的如果需要为不同平台打包就要在相应平台上运行PyInstaller进行打包。
python打包的模块
pyinstaller是一个第三方模块专用于python程序的exe打包
导入模块
pip install pyinstaller安装验证
pyinstaller --version基本语法
最简单的打包方式是
pyinstaller test.py # 默认文件夹模式pyinstaller生成spec文件将一些打包参数放到里面然后进行打包打包完成后目录下存在dist文件夹里面有打包后的文件。还会生成一个build文件夹写入日志
命令参数
-D 文件夹模式。在打包完成后生成一个文件夹其中包含一个exe文件和一个包含若干依赖文件的文件夹 -F 单文件模式。在打包完成后只会生成一个单独的exe文件 –add-data 指定一个文件夹或文件非二进制将其嵌入到exe中 –add-binary 指定二进制的文件夹或文件 -p/–paths提供一个路径进行搜索并且导入里面的模块不同的路径使用路径分隔符os.pathsep分隔开或者多次使用这个参数这可以解决有时候第三方模块找不到的问题。 –hidden-import / --hiddenimport 需要进行额外导入的模块。当pyinstaller在程序中找不到一些模块时需要你额外指定。这个参数可以多次使用可以解决一些模块找不到的问题。 –splash 添加一个启动画面图片文件路径在程序运行前显示指定的启动图片起到加载提示的效果。 -c 打包程序运行后出现一个黑色的控制台窗口默认 -w 打包程序运行后隐藏控制台窗口 -i /icon 设置打包后exe程序的图标只能在Windows和macOS上使用 –disable-windowed-traceback 禁用异常提示只能在Windows和macOS上使用
命令实例
pyinstaller -D -i icon.ico test.py位置参数在打包时放在最后,是需要打包的文件路径或是spec文件路径
文件夹模式
资源文件复制和exe文件位于同一位置
pyinstaller -w test.py单文件模式
资源文件复制和exe文件位于同一位置
pyinstaller -w -F test.py资源嵌入exe
资源嵌入exe只在单文件模式下使用。文件夹模式下资源文件夹不会嵌入到exe中但是会被复制到exe所在的文件夹。
文件开头通过以下函数返回正确的路径
import tkinter as tk # 导入tkinter
import sys
import ostk tk.Tk() # 创建窗口
tk .title(目录扫描工具) # 更改标题
def get_path(relative_path):try:base_path sys._MEIPASSexcept AttributeError:base_path os.path.abspath(.)return os.path.normpath(os.path.join(base_path, relative_path))
image tk.PhotoImage(fileget_path(assets/1.png))
label tk.Label(tk , text准备开始扫描, imageimage, compoundtop)
label.pack() # 显示图片root.mainloop() # 保持窗口运行pyinstaller -w -F --add-data assets;assets test.py更改图标
pyinstaller -w -F -i icon.ico my_app_name.py启动画面闪屏
支持闪屏需要先准备一张图片必须是PNG格式如果你安装了pillow模块可以用pillow模块支持的其他格式。然后在打包时加上–splash参数并传入图片路径。 在程序开头部分添加以下代码
try:import pyi_splashpyi_splash.close()
except ImportError:passpyinstaller --splash 2.png my_app_name.py禁用异常提示
--disable-windowed-traceback