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

PyInstaller打包exe遇scipy.libs找不到错误求解决方案

PyInstaller打包时缺失scipy.libs的解决方法

问题描述

使用PyInstaller打包Python项目为exe,执行命令:
pyinstaller -F --hidden-import=win32timezone --add-data "./data;data/" .\serviceWrapper.py
运行生成的exe时,因导入sklearn的linear_model模块触发以下错误:

Traceback (most recent call last):
  File "serviceWrapper.py", line 12, in <module>
    from main import main
  ...
FileNotFoundError: [WinError 2] No such file or directory: 'C:\\Users\\07945A\\AppData\\Local\\Temp\\_MEI552362\\scipy.libs'

尝试添加--hidden-import=scipy和--hidden-import=scipy.libs参数后问题仍存在,需找到正确包含scipy.libs的方式。

解决方案

1. 手动在打包命令中添加scipy.libs的路径

PyInstaller的--add-data参数可直接指定scipy.libs目录的源路径和目标路径。先找到你的Python环境中scipy.libs的实际位置(比如虚拟环境下路径为venv\Lib\site-packages\scipy.libs),将其加入打包命令:

pyinstaller -F --hidden-import=win32timezone --add-data "./data;data/" --add-data "venv\Lib\site-packages\scipy.libs;scipy.libs/" .\serviceWrapper.py

注意:Windows系统下用分号;分隔源路径和目标路径,目标路径需与程序运行时期望的路径(即scipy.libs/)一致。

2. 通过.spec文件自定义打包配置

  • 先生成.spec文件:
pyinstaller -F --hidden-import=win32timezone --add-data "./data;data/" .\serviceWrapper.py --specpath ./
  • 打开生成的serviceWrapper.spec,找到datas数组,添加scipy.libs的条目:
datas = [('./data', 'data'), ('venv/Lib/site-packages/scipy.libs', 'scipy.libs')]
  • 用.spec文件重新打包:
pyinstaller serviceWrapper.spec

3. 升级PyInstaller至最新版本

部分旧版PyInstaller对scipy的依赖处理存在缺陷,升级到最新版本可能自动解决scipy.libs的缺失问题:

pip install --upgrade pyinstaller

升级后重新执行原打包命令,验证问题是否解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:10:28