关于 PySide6 QNetwork 钩子从 PATH 中捆绑不兼容的 DLL

作者: VasigaranAndAngel创建于 2026年9月15日更新于 2026年9月15日
标签triage

你好,感谢你对 pyinstaller 的开发。 ** 问题 ** 当打包使用 `QNetworkAccessManager` 进行 https 请求的 PySide6 应用程序时,pyinstaller 的 pyside6 钩子通过搜索构建机器的 PATH 来捆绑 `libssl-3.dll`、`libssl-3-x64.dll`、`libcrypto-3.dll` 和 `libcrypto-3-x64.dll`。这是一个已知的问题,并且已经讨论过。但是,这些 DLL 应该来自一个固定的、已知兼容的 OpenSSL 构建,而不是从任何可用的 DLL 中获取。如果 PATH 上找到的这些 DLL 和 pyside6 提供的 `qopensslbackend.dll` TLS 插件的 ABI 不兼容,则冻结的应用程序在发出 https 请求时会在本地崩溃,不会抛出任何异常、追踪或日志输出。即使在 sys.exepthook 和 try/except 中也如此。因为失败发生在 Qt 的 C++ 层中。

内容来源: pyinstaller/pyinstaller