编译Streamlit程序出现多类错误,运行时提示scipy模块缺失如何解决
排查解决步骤
该错误核心原因是scipy版本不兼容、安装损坏或者执行环境与依赖安装环境不一致,按以下顺序排查即可:
- 检查当前环境
scipy版本
执行命令pip show scipy查看版本号。报错提到的scipy.integrate._ivp.common是scipy的内部私有模块,仅在1.4.x ~ 1.7.x版本中存在,1.8及以上版本调整了内部路径,低于1.4的版本无该模块。 - 对齐项目要求的
scipy版本
确认你项目依赖声明的scipy版本范围,安装对应版本即可,例如项目要求1.7.3版本,执行命令:pip install scipy==1.7.3 - 校验执行环境一致性
很多场景下会出现依赖装在虚拟环境,但是启动Streamlit时调用了全局Python的情况。分别执行以下命令查看路径:- Linux/Mac 执行:
which python、which streamlit - Windows 执行:
where python、where streamlit
若两者路径不属于同一个环境,优先激活对应虚拟环境后再启动,或者直接用当前环境的Python启动程序:
python -m streamlit run app.py - Linux/Mac 执行:
- 修复损坏的安装包
如果版本、环境都没问题,大概率是scipy安装文件损坏,先卸载再重装即可:pip uninstall -y scipy && pip install scipy==[你的目标版本号] - 修正不规范的引用
如果你的代码里直接写了import scipy.integrate._ivp.common,注意下划线开头的是内部私有模块,不建议直接引用,替换为scipy.integrate下的公开API即可,例如直接调用scipy.integrate.solve_ivp接口实现对应功能。
内容的提问来源于stack exchange,提问作者Ankita K
相关产品推荐
相关产品推荐

