安装sklearn后再重复安装scipy引起包冲突

安装sklearn后再重复安装scipy引起包冲突

环境:

torch==1.9.0+cu111
scikit-learn==1.0.2
scipy==1.7.3
...

背景:

需要用scipy,没有意识到scikit-learn在安装的时候同时安装了scipy,手贱在conda环境中pip install scipy了一下,之后在跑模型的时候,import DataModule时报错:

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: versionGLIBCXX_3.4.29‘ not found
`

切换其他环境,还是有一样的问题,

通过如下命令查看机器中装的GLIBCXX的版本:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

最高版本是3.4.24,低于要求。

上网查报错,提示的解决方法为:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update -y
sudo apt upgrade -y

然而执行第一句就报错,显示Connection failed.

之后继续找bug,忘了输了个啥,连pip list/conda list都没办法执行,报错:ModuleNotFoundError: No module named '_sysconfigdata_x86_64_conda_linux_gnu'

解决方法参考这篇博客

解决完后,再pip list,定睛一看,发现装scipy的时候把torch给升级了(1.9.0 -> 1.13.0),猜测GLIBCXX的错误和这个有关,把torch降级回1.9.0,问题解决

然后在import sklearn包的时候,其中有关scipy的部分又出现报错,猜测是因为之前手贱直接装的scipy和sklearn版本不兼容(重装低版本/高版本的scipy都没有)。就再重新pip install scikit-learn,问题解决。

注:scikit-learn 使用的scipy版本实际上和我之前pip install scipy的版本一样,但就是会报错

你可能感兴趣的:(python,开发语言)