本文考虑的Python来源有以下三种:
- 官网下载安装
- Brew下载安装
- Command Line Tools自带的
搜索
- 检查当前系统中存在的python解释器
ls /usr/local/bin | grep "python" # ================================ ipython ipython3 python python3 python3-config python3-intel64 python3.11 python3.11-config python3.12 python3.12-config python3.12-intel64 python3.9 python3.9-config
# NOTE: 这是个系统级python解释器,对应的python不建议删除 ls /usr/bin | grep "python" # ================================ python3
brew list | grep "python" # ================================ ipython python-certifi python-click python-lxml python-markupsafe python-packaging python-pyparsing python-pytz python-setuptools python@3.11 python@3.12 python@3.9
- 找到对应的python可执行文件路径【可执行文件就在安装路径内】
此时,输出可能是真实的执行文件路径,如# 交互式的进入python后 >>> import sys >>> sys.executable
['/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages', '/Library/Python/3.9/site-packages', '/AppleInternal/Library/Python/3.9/site-packages', '/AppleInternal/Tests/Python/3.9/site-packages']
,也可能是一个软连接,如'/usr/local/bin/python3'
。
如果是软链接,还需要进一步找到真实的路径,使用readlink
找到真实路径【可能需要迭代使用】readlink /usr/local/bin/python3 # ================================ ../../../Library/Frameworks/Python.framework/Versions/3.12/bin/python3
- 找到对应的python第三方依赖安装路径【brew安装python会自己管理第三方依赖】
# 交互式的进入python后 >>> import site >>> site.getsitepackages()
经测试,按照来源,相关路径可作如下分类:
- 官网:
- 安装路径:
/Library/Frameworks/Python.framework/Versions/3.x
- 第三方依赖路径:
/Library/Frameworks/Python.framework/Versions/3.x/lib/python3.x/site-packages
- 相关工具路径:
/Applications/Python 3.x
- 安装路径:
- brew:
- 安装路径:
/usr/local/Cellar/python@3.x
- 第三方依赖路径:
/usr/local/Cellar/python@3.x/3.x.y/Frameworks/Python.framework/Versions/3.x/lib/python3.x/site-packages
- 软链接:
/usr/local/opt/python@3.x
- 安装路径:
- Command Line Tools:
/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework
- 其他:
- brew中的
six
/usr/local/lib/python3.x/site-packages
- 往期版本残留位置
/Users/[username]/Library/Python/3.x/lib/python/site-packages
- brew中的
清理
推荐按照如下几条规则:
- brew下载的python包不需要自己管理,只用做其他软件包的依赖
- ipython之类的也不要通过brew安装,因为扩展很不方便
- 官网下载的安装包用于日常使用
- 安装
ipython
用于计算器 - 安装
matplotlib
用于日常绘图 - 安装
pipdeptree
与pip-review
用于依赖管理
- 安装
- 特定项目的python使用virtualenv创建
- 软硬链接(快捷方式)规则:
/usr/local/bin
只保存官网的解释器与pip软链接/usr/bin/
只保存CommandLineTools的解释器与pip硬链接- 确保命令兼容:
- 创建
/usr/local/bin/python
软链接:ln -s /usr/local/bin/python3 /usr/local/bin/python
- 创建
/usr/local/bin/pip
软链接:ln -s /usr/local/bin/pip3 /usr/local/bin/pip
- 创建