在使用pyenv时,出现了卡顿,最后运行提水 pyenv: cannot rehash: couldn't acquire lock /Users/user/.pyenv/shims/.pyenv-shim for 60 seconds. Last error message:/opt/homebrew/Cellar/pyenv/2.6.31/libexec/pyenv-rehash: 行 22: /Users/user/.pyenv/shims/.pyenv-shim: 无法覆盖已存在的文件

解决方案: 删除对应的锁文件

rm -f /Users/user/.pyenv/shims/.pyenv-shim

产生原因:
当你在终端启动时,~/.zshrc 里的 eval "$(pyenv init -)" 会自动运行 pyenv rehash 来更新命令链接。如果残留的锁文件存在,rehash 进程就会尝试获取锁,并在 60 秒超时后报错,这期间终端看起来就像卡死了。

如何避免
为了避免未来再次遇到这个问题,关键是不要在 pyenv install 或 pyenv rehash 执行过程中强制中断(比如直接关闭终端或按 Ctrl+C)。确保命令正常结束后再关闭窗口,锁文件就会被自动清理。