故事背景就不多说了,状况就是conda更新的过程被打断了 在Anaconda3\Scripts文件夹下的文件缺失,这样conda命令也失效了、jupyter notebook也无法启动。
可是我已经建立好的虚拟环境和装过那么多的包还是不想丢弃,于是设法不重新安装Anaconda;
既然我已经把问题定位在Script文件夹,那么安装另一套Anaconda把它的Script复制过来覆盖可以吗?
答案是不可以,经过实验,即使用原本的python解释器启动这个文件夹下的anaconda-navigator-script.py或者jupyter-notebook-script.py,也启动的是新装的Navigator和Jupyter Notebook,或者启动Notebook后的python服务还是新装的python,因此原本的python包还是不能被使用;
于是我尝试逆转思维,把旧的Anaconda的python包复制到新装这版的路径下,问题是包在哪里?
首先发现Anaconda3文件夹下存在一个pkgs文件夹,存放了各种包名字的文件夹,我看了下我的pkgs文件夹占用空间12.5个GB,感觉上过去装的东西都在这儿了,于是复制给新的Anaconda,花费半小时,主要是因为小文件太多导致速度缓慢;
重新实验未果,python import和pip list都找不到我曾经安装的包;
用新装的python安装一个新包,搜索其位置,发现真正存放python包的位置其实是\Lib\site-packages这个文件夹,于是把原本的Lib\site-packages复制过来覆盖,花费十分钟;
再次尝试,pip list可以看到曾经安装的包,jupyter notebook也可以成功运行过去的.ipynb文件,问题暂且算是解决。
总结:其实核心目的是把python包迁移,只要知道它存放于\Lib\site-packages,用原版对新安装的环境进行替换即可,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)