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

使用PyInstaller打包含Scipy的Python程序时遇模块导入错误

解决PyInstaller打包时scipy._trlib的导入错误

看来你在PyInstaller打包的路上又遇到了scipy相关的小坑!之前解决pandas的hidden import问题的思路其实完全可以复用在这里,给你几个快速解决的方案:

  • 方法一:创建scipy对应的hook文件
    既然你已经用过hook文件搞定pandas的问题,那这个操作对你来说应该轻车熟路啦。在你的项目根目录下创建一个名为hook-scipy.py的文件,里面只需要写一行:

    hiddenimports = ['scipy.optimize._trlib']
    

    然后打包的时候指定hook文件所在的目录:

    pyinstaller -F --additional-hooks-dir=. myfile.py
    

    这样PyInstaller就会自动加载这个hook,把缺失的模块包含进打包文件里。

  • 方法二:直接在打包命令里指定hidden import
    如果你不想额外创建文件,也可以直接在打包命令里加参数一步到位:

    pyinstaller -F --hidden-import scipy.optimize._trlib myfile.py
    

    这个方法更简洁,适合临时解决单个模块缺失的问题。

  • 额外提示
    如果之后打包还遇到其他类似No module named xxx的错误,都可以用同样的思路处理:要么把缺失的模块添加到hook文件的hiddenimports列表里,要么直接用--hidden-import xxx参数追加进去。毕竟PyInstaller的自动模块分析偶尔会漏掉一些动态导入的内部子模块,尤其是像scipy这种依赖C扩展的库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:26:45