目录
一. 问题
最近折腾 Python 环境有些需要在 Python@2 环境下才能进行,今天用 brew upgrade 后,发现 python@2 咋没了?
没办法,我猜 brew 的python@2 可能出问题了,卸载再安装报如下错误?
# 查找
$ brew search python@2
Error: No formulae or casks found for "python@2".
# 安装
$ brew install python@2
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
Error: No available formula or cask with the name "python@2".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching taps on GitHub...
Error: No formulae found in taps.
以前好好的,咋安装不上了呢 ?
二. 分析
2.1 系统环境
首先,看看本机环境都有哪些 python 版本:
# 本机环境版本
$ python --version
Python 2.7.16
# 本机环境,脚本命令路径
$ which python
/usr/bin/python
## python2,脚本命令路径
$ which python2
/usr/local/bin/python2
## python3,脚本命令路径
$ which python3
/usr/local/bin/python3
查看本机环境链接的脚本路径:
# 本机环境链接的系统Python 版本
$ ls -al /usr/bin/python*
lrwxr-xr-x 1 root wheel 75 10 11 2019 /usr/bin/python -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x 1 root wheel 82 10 11 2019 /usr/bin/python-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
lrwxr-xr-x 1 root wheel 75 10 11 2019 /usr/bin/python2 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x 1 root wheel 75 10 11 2019 /usr/bin/python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
lrwxr-xr-x 1 root wheel 82 10 11 2019 /usr/bin/python2.7-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
-rwxr-xr-x 1 root wheel 31488 3 17 2020 /usr/bin/python3
lrwxr-xr-x 1 root wheel 76 10 11 2019 /usr/bin/pythonw -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
lrwxr-xr-x 1 root wheel 76 10 11 2019 /usr/bin/pythonw2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7
可见,系统真实的引用路径为:
/System/Library/Frameworks/Python.framework/Versions/2.7/
系统本机环境提供的 python 版本不建议进行安装各种第三方和更新 python 版本,以免引起不必要的不可预见的麻烦;
推荐 brew install python 方式,然后使用virtualenv 虚拟环境方式,配置各个项目运行空间;
2.2 Cellar Python
查看一下 python2 和 python3 引用的路径:
$ ls -al /usr/local/bin/python*
lrwxr-xr-x 1 root admin 18 12 20 2018 /usr/local/bin/python2 -> /usr/bin/python2.7
lrwxr-xr-x 1 xxx admin 40 5 18 10:19 /usr/local/bin/python3 -> ../Cellar/python@3.9/3.9.1_8/bin/python3
lrwxr-xr-x 1 xxx admin 47 5 18 10:19 /usr/local/bin/python3-con