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

PyInstaller打包遇pip-system-certs失效及.dll解析问题求助

问题1:PyInstaller打包后pip-system-certs失效导致SSL验证错误

解决方案:

  • 确保脚本开头显式初始化pip-system-certs:
    import pip_system_certs
    pip_system_certs.inject()
    
  • 打包时除了--hidden-import pip-system-certs,额外添加参数确保模块完整打包:
    pyinstaller --hidden-import pip-system-certs --collect-submodules pip-system-certs --copy-metadata pip-system-certs your_script.py
    
  • 若仍无效,可改用certifi库替代,直接在代码中指定证书路径:
    import ssl
    import certifi
    ssl._create_default_https_context = lambda: ssl.create_default_context(cafile=certifi.where())
    
    打包时PyInstaller会自动包含certifi的证书文件,无需额外参数。
问题2:Blosc2依赖的zstd.dll、lz4.dll、zlib-ng2.dll缺失

解决方案:

  • 自动收集动态库:
    1. 生成spec文件:
      pyi-makespec your_script.py
      
    2. 编辑生成的your_script.spec文件,修改Analysis部分:
      from PyInstaller.utils.hooks import collect_dynamic_libs
      
      a = Analysis(
          ['your_script.py'],
          # 保留原有其他参数
          binaries=collect_dynamic_libs('blosc2'),
          # 保留原有其他参数
      )
      
    3. 用spec文件打包:
      pyinstaller your_script.spec
      
  • 手动指定dll路径:若自动收集失败,找到dll所在路径(通常在Python安装目录的Lib/site-packages/_blosc2下),打包时手动包含:
    pyinstaller --add-binary "C:/Python311/Lib/site-packages/_blosc2/zstd.dll;." --add-binary "C:/Python311/Lib/site-packages/_blosc2/lz4.dll;." --add-binary "C:/Python311/Lib/site-packages/_blosc2/zlib-ng2.dll;." your_script.py
    
    注意替换路径为你本地的实际路径,Windows下用;分隔源路径和目标路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:18:11