M1 MacBook 创建python指向python3软链接失效是什么原因
问题原因分析
- Shell 命令哈希缓存未更新
这是该问题的最常见诱因。macOS 默认使用的 zsh、bash 等 shell 都会默认开启命令哈希机制:首次执行某条命令时,shell 遍历 PATH 找到对应可执行文件的完整路径后,会将映射关系缓存到内存中,后续执行相同命令时直接调用缓存路径,无需重复遍历 PATH 提升性能。
你在调整 PATH 优先级、创建 python 软链接之前已经执行过 python 命令,shell 当时缓存了系统默认/usr/bin/python对应的 Python 2.7 路径。后续即使路径配置正确,shell 依然优先调用旧缓存,就会出现type python显示路径正确、但实际执行版本不匹配的矛盾现象。
验证方式:执行hash | grep python,如果输出中 python 指向/usr/bin/python即可确认。
修复方式:执行hash -d python清除 python 对应的单条缓存,或执行hash -r清空全部命令缓存即可生效。 - 软链接或权限异常(概率较低)
如果清除缓存后问题仍存在,可执行以下命令排查:- 执行
readlink /Users/overflow/Documents/tools/python确认软链接指向路径为/usr/bin/python3,无拼写或相对路径错误 - 执行
ls -l /usr/bin/python3确认系统自带 python3 可执行文件存在、当前用户有执行权限
- 执行
内容的提问来源于stack exchange,提问作者JaviOverflow
相关产品推荐
相关产品推荐

