原来anaconda是安装在/目录下,系统升级后,不允许了,因此anaconda安装文件被放在“/用户/共享/迁移的项目”文件夹下。这时启动终端进入python,会发现之前用anaconda装的python环境都没了,现有的python是MacOS自带的python2.7。
1、首先摁command+shift+. 显示隐藏文件。
2、将anaconda3的安装文件夹拷贝到/Users/你的用户/ 下。
3、将anaconda3的bin目录放进PATH中
首先查看PATH
echo $PATH
发现PATH中没有当前anaconda的路径,只有原先的路径:
/anaconda3/bin:/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
添加新路径,如果还用bash,就在~/.bash_profile中修改,如果改用zsh,就在:~/.zshrc中修改。终端偏好设置里可以自己选。
sudo vim ~/.zshrc (~/.bash_profile同理)
或者在/Users/你的用户下找到隐藏文件.zshrc(~/.bash_profile同理)
加入环境变量
export PATH="/Users/你的用户/anaconda3/bin:$PATH"
从新打开终端
此时再运行python时,不再是系统自带的python2.7,而是anaconda中的python版本。
但是此时conda 仍然不能运行。报错如下:
zsh: /Users/用户名/anaconda3/bin/conda: bad interpreter: /anaconda3/bin/python: no such file or directory
还需要更改conda文件
4、更改conda文件
在/Users/你的用户/anaconda3/bin文件夹下,找到conda,显示是一个exec文件,此时用文件编辑.app打开文件。将第一行的
#!/anaconda3/bin/python
改为
#!/Users/你的用户/anaconda3/bin/python
此时重新打开终端后,输入conda,上面的报错消失。这就结束了吗,显然并没有。比如这时候你启动过jupyter,仍然会报错:
zsh: /Users/用户名/anaconda3/bin/jupyter: bad interpreter:
/anaconda3/bin/python3.7: no such file or directory
这是因为虽然你conda改了,但是别的都没改,当然你可以一点一点去手动改,推荐这样:
conda init zsh
(或者你使用bash的话就conda init bash)
会显示哪些文件被更改了,这时候重新打开shell即可。发现conda activate等这些命令也可以用了。但是此时打开spyder、或者jupyter时仍然不可以,报错:
/bin/bash: /PlayGround/anaconda3/bin/pythonw: No such file or directory
其实说到底还是相同的道理,有的文件里面路径没改,但是因为conda可以用了,你就可以选择去更新一下包,或者手动去改一些conda init 没搞定的文件。
如果是anaconda的其他环境,同理在/anaconda3/envs/py352/bin下找对应的文件
5、完善
更改jupyter 后,会报错:
zsh: /Users/用户名/anaconda3/envs/py352/bin/jupyter: bad interpreter: /anaconda3/envs/py352/bin/python: no such file or directory
需要改一下jupyter 的kernel.json,路径为:
/Users/用户名/anaconda3/share/jupyter/kernels/python3
将其中的python地址更改。
anaconda安装的其他环境,就在env下同理搞定即可。
更改完spyder文件后会报错:
/Users/用户名/anaconda3/bin/pythonw: line 3: /anaconda3/python.app/Contents/MacOS/python: No such file or directory
6、。。。
一套操作完了之后,后来发现了官方文档。。。
https://www.anaconda.com/how-to-restore-anaconda-after-macos-catalina-update/
大致翻译一下怎么用吧
1、
官方文档的命令:
curl -L https://repo.anaconda.com/pkgs/misc/cpr-exec/cpr-0.1.1-osx-64.exe -o cpr && chmod +x cpr
会报错:
curl: (77) error setting certificate verify locations:
CAfile: /anaconda3/ssl/cacert.pem
CApath: none
忽略证书验证位置即可:
curl -k -L https://repo.anaconda.com/pkgs/misc/cpr-exec/cpr-0.1.1-osx-64.exe -o cpr && chmod +x cpr
-k是忽略证书,-o是保存文件,否则是直接输出到屏幕,文件保存在当前目录下
2、
./cpr rehome 新路径
输入命令后出现如下界面
Detecting embedded prefix: 0%| | 32/203523 [00:00<20:52, 162.51it/s]^R
Detecting embedded prefix: 19%|███████████████▉
3、
source ~/anaconda3/bin/activate
conda init
“~”代表了/Users/用户名
4、
将文件~/.conda/environments.txt中旧地址更改
5、
更改其余未尽文件,因为许多包通常在主目录的某些子文件夹中管理自己的配置文件,可以通过grep搜索含有关键字的文件:
cd 新anaconda
grep -R “ / Anaconda3”
把他们逐一改正
综上两种方法,本人自己鼓捣的,和官方的,都可以修复环境。