import os import PyInstaller.__main__ from PyQt5.Qt import QT_VERSION_STR args = [ # "--clean", "--distpath", "./dist", "--icon", "./src/ui/imgs/neo.ico", "--log-level", "WARN", "--name", "stb-gui", "--onefile", "--paths", f"./src{os.pathsep}/c/Qt/{QT_VERSION_STR}", # if missing dlls the extra qt folder might be wrong "--python-option", "-u -O", # "--specpath", ".", # breaks data paths making them relative from specpath "--windowed", "--workpath", "./build", "-y", "./src/main.py", ] + [ "--collect-binaries", "can", "--collect-submodules", "can", ] included_data = [ f"./src/ui/imgs{os.pathsep}ui/imgs", ] for root, dirnames, filenames in os.walk(os.path.join("src", "ui")): for filename in filenames: if filename.endswith(".ui") or filename.endswith(".qml"): path = os.path.join(root, filename) dest = path.split(os.sep)[1:-1] if not len(dest): dest = ["."] dest = os.path.join(*dest) included_data.append(f"{path}{os.pathsep}{dest}") for spec in included_data: args.append("--add-data") args.append(spec) PyInstaller.__main__.run(args)