ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【已解决】MacOs升级Catalina后由于shell命令解析器由bash变为zsh导致conda命令不能用问题

2020-04-05 13:05:43  阅读:403  来源: 互联网

标签:解析器 bin MacOs Users anaconda3 python 命令 conda anaconda


原来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”

把他们逐一改正

综上两种方法,本人自己鼓捣的,和官方的,都可以修复环境。

标签:解析器,bin,MacOs,Users,anaconda3,python,命令,conda,anaconda
来源: https://blog.csdn.net/zkp_987/article/details/105308578

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有