我使用的是linux+miniconda3的环境,尝试运行以下两个命令:
conda install -c conda-forge gcc
conda install -c conda-forge libstdcxx-ng
如果运行了以上命令还是提示一样的错误,就要注意报错里面的路径,比如说我的报错:ImportError: /home/pc/miniconda3/envs/INORig/lib/python3.6/site-packages/torch/lib/../../../.././libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/pc/miniconda3/envs/INORig/lib/python3.6/site-packages/scipy/_lib/_uarray/_uarray.cpython-36m-x86_64-linux-gnu.so)
这表示在/home/pc/miniconda3/envs/INORig/lib/python3.6/site-packages/torch/lib/../../../.././libstdc++.so.6:这个目录下找不到libstdc++.so.6这个文件。原因是使用开始那两个命令,安装libstdc++.so.6这个文件的路径默认在/usr/lib/x86_64-linux-gnu/libstdc++.so.6,所以会出现即使你已经运行了上面的命令,还是会出现同样的报错。
我的解决办法就是把 /usr/lib/x86_64-linux-gnu/libstdc++.so.6这个文件,复制一份到conda虚拟环境的lib目录下,也就是~/miniconda3/envs/INORig/lib目录下,注意INORig是我的虚拟环境目录,这个需要改成自己的目录。
如果你的/usr/lib/x86_64-linux-gnu/目录下没有libstdc++.so.6这个文件,尝试以下命令:
sudo apt-get install libstdc++6