为何已通过pip安装scipy模块,运行脚本时仍提示No module named scipy错误
问题根因
核心原因是执行环境隔离:你在Windows PowerShell中给Microsoft Store版Python安装的依赖包,和Bash *.sh调用时使用的Python环境完全独立。Windows端调用Bash命令默认触发WSL(Linux子系统)运行脚本,子系统自带独立的Python解释器、pip包管理器,无法读取Windows系统内安装的Python包。
解决步骤
- 进入WSL环境:在PowerShell中执行
wsl命令,进入Linux子系统终端 - 升级子系统内的pip:执行
python3 -m pip install --upgrade pip - 安装所需依赖包:执行
python3 -m pip install numpy scipy matplotlib ipython jupyter pandas sympy nose - 验证安装:执行
python3 -c "import scipy; print(scipy.__version__)",正常输出版本号即说明安装成功,此时再运行你的sh脚本即可正常加载scipy模块
额外排查点
如果按照上述步骤操作后仍报错,检查你的sh脚本内Python调用命令:如果脚本内写的是python xxx.py,WSL默认可能未将python映射到python3,可修改脚本内调用命令为python3 xxx.py,或在WSL内执行sudo ln -s /usr/bin/python3 /usr/bin/python做软链接映射。
内容的提问来源于stack exchange,提问作者Niraj Gupta
相关产品推荐
相关产品推荐

