python2版本异常_Mac python2异常情况

Mac python2异常情况

前面小编写了一篇文章,关于 Mac工具集 ,最近折腾下电脑, 装了一些新的软件,如item2,Splashtop XDisplay (把ipad作为副屏的软件,也可升级ipad到ipad os,sidebar可以做副屏)。重启了电脑然后之后,像 autojump  cd 等等工具不好使了。 这种事情避免以后发生, 特此在博客中备份。

追踪和记录

错误信息

ImportError: dlopen(/usr/local/Cellar/python/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so, 2): Symbol not found: __PyCodecInfo_GetIncrementalDecoder

复制代码

查阅资料之后

由于我本地装了python3和 python2.7.6, 导致不同版本造成不同的原因。

通过查找 _io.so

sudo find / -name _io.so

复制代码

发现有不同版本的 _io.so

/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_io.so

复制代码

一个是系统级别的, 一个是python2.7.

用系统级别的 替换 python2.7, 之后重新测试。

发现 系统级命令 cd等好用了

autojump错误处理

Traceback (most recent call last):

File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/hashlib.py", line 147, in

globals()[__func_name] = __get_hash(__func_name)

复制代码

看起来像 python的hashlib异常。 因为我这边都是用 brew来装的python

使用 brew doctor诊断之后,发现建议 重新link python

brew link --overwrite python

复制代码

如果你也有相关的问题, 不妨使用 brew doctor 诊断。特别对于对错误不好排查的时候, brew给的建议或许很有用。 处理完之后,发现电脑里面有python3 和 python2.

由于python官方以后放弃 python2的更新, 使用alias将python指向 python3.

echo "alias python="/usr/local/bin/python3"" >> ~/.zshrc

复制代码

这样以后电脑的使用就一个 python,老的python2,交给一些使用python2的库就行。

总结

如果你也用mac,用了brew尽量将他作为唯一的包管理工具, 同时保证系统里面某些版本的一致性, 如果非要折腾建议在docker等容器里折腾。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值