原來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”
把他們逐一改正
綜上兩種方法,本人自己鼓搗的,和官方的,都可以修復環境。