在macOS下通过pyenv安装python3.7.4时ranlib command failed解决办法

这几天在macbook上通过pyenv升级python环境,在安装3.7.4版本的时候遇到了如下错误:

internal ranlib command failed

起初以为是缺失了 xcode commandline tools 导致的。后来想了下,虽然我不用xcode,但我一般都会第一时间安装commandline tools。所以问题应该出在ranlib身上。于是看了看系统里的ranlib:

[16:17:11]( ^ー゚^) ~ » which ranlib                                                                            
/usr/local/bin/ranlib

感觉这个很奇怪,因为不是系统自带的bin目录,而像是后天安装进去的。

ll /usr/local/bin/ranlib
lr-xr-xr-x  1 root  admin     7B Feb 10  2017 /usr/local/bin/ranlib -> libtool

果然有问题,文件的创建时间是17年2月。然后又去 /usr/bin 下面看了看:

ll /usr/bin/ranlib
-rwxr-xr-x  1 root  wheel    18K Jul 30 05:49 /usr/bin/ranlib

很明显这个才是真身。干脆彻底比较了一下 /usr/local/bin/usr/bin 下的可执行文件,重复的全都干掉,发现除了 ranlib 之外还有个 ar 的命令也是重复的,一并处理掉:

sudo mv /usr/local/bin/ar /usr/local/bin/ar_bak_20190929
sudo mv /usr/local/bin/ranlib /usr/local/bin/ ranlib_bak_20190929

然后再通过 pyenv install 3.7.4 安装pyton3,一切顺利。

加载评论框需要翻墙