这个问题是比较让人头疼的,因为出现问题后,conda指令无法正常使用,意味着我们的虚拟环境无法使用。
问题原因:
在查找该问题的解决办法的时候,也顺便了解了一下该问题的产生原因。往往是因为我们的某些操作,修改了base环境下的python版本,导致base下的python版本与当前版本conda支持的不一致。造成这种问题的具体操作,有可能是:
1.在base环境下安装包,更新了python版本
2.修改了base环境下的python软链接。
很明显,我是第二个操作导致的问题。
搜索了很多解决办法,其中都是针对Anoconda的
1.建立在你的当前anoconda原始安装文件xxx.sh存在的情况下,使用下列指令,在不破坏虚拟环境的情况下更新anoconda:
bash Anaconda3-x.x.x-Linux-x86_64.sh -u
看大家都成功了,我很开心,因为我的原始文件存在。但是这并没解决我的问题,因为我安装的是miniconda,因此这种解决办法对我无效......
针对Anoconda,如果
2.你原始安装文件不存在的话,有这么一种解决办法:
https://blog.csdn.net/qq_41994144/article/details/120895255
但同样由于我的是miniconda,这种办法亲测无效。(对Anocoda有没有效,就不晓得了)
Miniconda解决办法
在尝试了两种主流办法都无效的情况下,我考虑既然是我的base环境下的python版本有问题,那么我只要恢复到原来的版本不就行了,问题是如何回复呢,当然是重装miniconda了,因此我
1).将已有的miniconda文件夹重命名为miniconda_bk,防止安装时被重写
2).使用当前版本的原始安装文件,重新安装(不加 -u选项):
bash miniconda3-x.x.x-Linux-x86_64.sh
3).安装完成后,conda可用,这个时候,我们使用which python指令,找到base环境下的python文件(包括python2,python3),将其拷贝.
4).进入miniconda3_bk文件夹的相同位置,将出问题的python(包括python2,python3)覆盖。将minicona3_bk改为原来的miniconda3,第二步中新安装的miniconda3文件夹要么改名,要么删除。
至此,我的问题解决了。因此解决我的问题是需要原始的安装文件的。如果你的原始安装文件找不到了,如果miniconda版本你知道(不知道的话搜一下如何获取),想办法下载对应的.sh应该也是可以按照上面的方法解决的。
思路,但我没有尝试
如果真的获取不到原始安装文件xxx.sh,但你知道base环境的python版本,可以尝试自行安装该版本的python,并将base下的python与其建立软链接。(sudo ln -s xxx/python xxx/miniconda3/envs/base/bin/python)