2025年2月

问题

开发和打包成二进制都没问题,打包mac独立app onefile不显示窗口

if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon("icons/icon.png"))  # 确保 "icon.png" 路径正确,可以是绝对路径或相对路径
    from PyQt5.QtCore import Qt
    QApplication.setAttribute(Qt.AA_DontUseNativeMenuBar, True)


    # 设置全局日志回调(使得代理模块调用 log() 时同时能写入 UI)
    def gui_log(msg):
        window.log(msg)
    LOG_CALLBACK = gui_log

    window = MainWindow()
    window.setWindowTitle("代理")

    window.resize(600, 600)
    window.show()
    sys.exit(app.exec_())

开发,打包二进制没问题,打包mac应用不显示窗口
注释掉python window.resize(600, 600)就好了

参考

def resource_path(relative_path):
    """获取打包后的资源文件路径"""
    if hasattr(sys, '_MEIPASS'):
        # 打包后的路径
        base_path = sys._MEIPASS
    else:
        # 开发阶段的路径
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

# 使用示例
icon_path = resource_path("icons/icon.png")

打包参数

pyinstaller --windowed --noconfirm  --add-data "icons:icons" -F main.py