终端输入python报zsh: permission denied,是否需设别名指向python3?
问题:输入
python提示权限拒绝,python3可正常使用,该如何处理? 终端输入python时返回:
zsh: permission denied: python
系统中已安装Python3(路径usr/bin),但常见教程里直接输入python即可调用Python3,为何我这里命令失效?是否需要将python设为Python3的别名?
附终端命令输出:
stephen@Stephens-MBP 3rd % python -V zsh: permission denied: python stephen@Stephens-MBP 3rd % python2 -V zsh: command not found: python2 stephen@Stephens-MBP 3rd % python3 -V Python 3.9.6 stephen@Stephens-MBP 3rd % pyenv versions system * 2.7.18 (set by /Users/stephen/.pyenv/version) 3.9.10 stephen@Stephens-MBP 3rd % python zsh: permission denied: python stephen@Stephens-MBP 3rd % type python python not found
原因分析
- macOS 默认规则限制:从Catalina(10.15)版本开始,macOS不再预装Python2,也没有默认将
python命令指向Python3,直接输入python时系统找不到对应执行文件。 - pyenv 配置异常:你安装了pyenv管理Python版本,当前激活的是2.7.18,但
type python显示命令不存在,还弹出权限拒绝提示——大概率是pyenv的shims路径没被加到shell的PATH最前端,导致系统优先查找了其他目录中无执行权限的python文件,触发权限错误。
解决方法
方法1:修复pyenv配置(继续用pyenv管理版本)
- 打开zsh配置文件
~/.zshrc,添加以下初始化代码:export PYENV_ROOT="$HOME/.pyenv" command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" - 执行
source ~/.zshrc使配置生效,之后输入python即可调用pyenv当前激活的2.7.18版本。
方法2:给Python3设置别名(无需使用pyenv时)
直接在~/.zshrc中添加一行别名配置:
alias python="python3"
执行source ~/.zshrc生效后,输入python就会直接调用系统的Python3。
内容的提问来源于stack exchange,提问作者fewaf
相关产品推荐
相关产品推荐

