Python --- pyinstaller --- 打包成exe并更换图标
安装pyinstaller
首先要安装第三方库pyinstaller,打开dos窗口输入安装命令如下。
pip install pyinstaller
执行打包命令
输入命令,pyinstaller -F 绝对路径。(-F表示覆盖打包,如果多次进行修改并打包,执行这个命令就是最新的)
pyinstaller -F X:\project\myProject\TransferToDecimal.py
执行完命令之后会生成几个文件夹,pycache,dist和build。
可能出现的问题
但是我就遇到了这样的问题,在执行完打包命令之后在py文件所在目录中只生成了一个_pycache_文件夹,并没有所谓的dist和build文件夹,于是我用各种方法解决,卸载重新安装pyinstaller,重新执行打包命令之后还是同样的问题。
仔细看了命令执行过程中的内容,发现了一个路径,顺着这个路径找到了这个文件夹(C:\Users\Qxy),发现不是没有生成dist和build,而是生成在其它文件夹中了。
运行exe程序
build和_pycache_中的文件先不用管,关键是dist中可执行的exe程序。(图是改了图标之后截取的,更换图标的方法在下一小节...)
双击就可以直接运行,这样在没有python的环境下,也依然可以运行了。
更换exe程序图标
如果不喜欢默认的图标,想要换成自己喜欢的,那么需要准备后缀为.ico的图片。在网页上就可以在线转图片格式,很方便。
执行命令:pyinstaller -F -i 图片名.ico 文件名.py。(-i表示更换图标)
pyinstaller -F -i X:\yus.ico X:\project\myProject\TransferToDecimal.py
去掉dos窗口
因为我打包的是一个图形界面,发现每次运行程序的时候,都会显示dos窗口,想取消掉,就执行-w命令。再重新打包后,就会只显示图形界面,没有dos窗口了。
pyinstaller -F -w X:\yus.ico X:\project\myProject\TransferToDecimal.py
pyinstaller参数
附上pyinstaller常用的参数列表。
参数 | 含义 |
---|---|
-F | 打包单个文件,生成结果是一个exe文件,如果代码都写在一个.py文件时使用,项目有多个文件时不要使用 |
-i | 指定程序的图标 |
-w | 不显示dos窗口(命令行) |
-c | 显示dos窗口(命令行) |
-h | 显示帮助 |
-v | 显示版本号 |
--key=密码 | 加密打包 |
ps:虽然只是一个非常小(2kb)的程序,打包完之后居然也有10m。
pyinstall打包后出现路径问题,获取excel文件路径错误,解决方法:
#获取当前路径
w1 = os.path.dirname(os.path.realpath(sys.executable))
#获取上一级路径
w2 = os.path.dirname(os.path.dirname(os.path.realpath(system.executable)))