You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让pyinstaller以--onefile选项打包时支持python-certifi-win32

问题根因

python-certifi-win32的自动补丁逻辑依赖Python启动时加载的sitecustomize启动模块触发补丁注入,而PyInstaller打包后的运行环境默认不会加载该启动模块,因此即使你添加了--hidden-import导入了模块,补丁也没有被实际执行,就会出现和未安装该包一致的SSL证书报错。

可行解决方案

方案1:手动触发补丁(优先推荐)

在你脚本的最开头位置,所有其他导入语句(尤其是certifi、requests、Tableau相关依赖的导入)之前,添加以下两行代码,显式触发补丁注入:

import python_certifi_win32
python_certifi_win32.wincert.inject_patch()

修改后先直接运行源码确认功能正常,再重新执行PyInstaller打包命令即可,无需额外添加--hidden-import参数,PyInstaller会自动识别你显式导入的依赖。

方案2:兼容特殊场景的备选方案

如果方案1执行后依然报错,可以手动把企业内部信任的根证书导出为PEM格式,打包时通过PyInstaller的--add-binary参数把证书文件打包到执行文件中,同时在代码中指定requests/Tableau REST API调用时的verify参数指向该证书路径即可。


内容的提问来源于stack exchange,提问作者Dan0175

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 17:45:04