pyinstaller的安装
1、打开cmd输入:pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple ,看python版本,如果出现下图说明安装成功出现下图报错 Preparing wheel metadata … error
那就输入pip install wheel -i https://pypi.tuna.tsinghua.edu.cn/simple
出现上图重新输入pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
即可
修改程序代码
在程序代码文件目录下创建新的directory 命名为resource将程序中的图片等资源放进去
增加以下代码
用于windows系统调用资源:
import sys
import os
def get_resource_path(relative_path):
if getattr(sys,“frozen”,False):
base_path =sys._MEIPASS
else:
base_path =os.path.abspath(".")
return os.path.join(base_path,relative_path)
LOGO_path =get_resource_path(os.path.join(“resource”,“logo.ico”))
其中LOGO_path =get_resource_path(os.path.join(“resource”,“logo.ico”))这行为非必须,logo.ico就是图片资源
使用pyi-makespec -F命令创建spec文件
cmd进入py文件所在位置输入pyi-makespec -F +文件名,注意文件名加引号避免出现字符截取问题,如果出现报错说non UTF-8- code
那就是因为python版本问题,解决办法:
进入以下路径Python38\Scripts\pyi-makespec-script.py
修改打开的文件,加上#encoding = utf-8
解决non UTF-8- code问题再输入pyi-makespec -F +文件名
说明创建成功spec文件
修改spec文件内容
datas=[(“resource”,“resource”)],resource就是之前的new directory
修改console=False
可以在打开程序的时候消除黑框
修改程序图标增加icon = “图片绝对路径(16*16ico格式)”
打包程序
输入pyinstaller -F 加刚创建的spec文件,如果还是出现non-UTF-8-code那就根据cmd提示到pyinstaller-script.py文件中加上#encoding = utf-8
如果是出现failed to create process,那就是pyinstaller版本过低的问题,进入pyinstaller-script.py文件,在第一条语句的路径中用双引号将路径括起来
解决后重新输入pyinstaller -F
报错:TypeError:an integer is required
解决:输入pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz
再重新输入pyinstaller -F 加文件出现下图说明成功了