macOS:
UI文件及图片需要使用
–add-data 将文件一起打包进resource文件夹
使用:.打包进resource
ui:ui 代表将ui文件夹打包进resource
CD到py文件补录
pyinstaller -i icon/app.icns --add-data jimmy.conf:. --add-data ui:ui --add-data icon:icon jimmy_main.py --noconsole
踩到的坑:
文件路径:
Mac需要将代码中的文件都替换成绝对路径.
使用以下函数将所有路径转换成绝对路径.
def getPath(fileName):
"""
获取文件绝对路径,Mac下打包需要
"""
path = os.path.join(os.path.dirname(sys.argv[0]), fileName)
return path
另外如果使用QSS文件,里的相对路径可以使用字符串替换掉.
例:
file = QFile(getPath('ui/my_style_mac.qss'))
file.open(QFile.ReadOnly | QFile.Text)
stream = QTextStream(file)
abs_path_dir = getPath('')
qss = stream.readAll().replace('url("icon', f'url("{abs_path_dir}icon')
# 将qss中的相对路径替换成绝对路径
_app.setStyleSheet(qss)
Windows
pyinstaller jimmy_main.py --noconsole --workpath d:\pybuild --distpath d:\pybuild\dist --hidden-import PySide6.QtXml --i icon\app.ico