如何让pip命令使用pyenv管理的pip而非系统默认pip?
问题修复方案
根本原因
你的shell环境的PATH变量中,Python2.7对应pip的目录优先级高于pyenv的shims目录,导致系统优先匹配到了全局的Python2.7 pip,没有走pyenv的环境接管逻辑。
永久修复步骤
- 编辑当前shell对应的配置文件:
如果你用zsh(MacOS默认shell),编辑~/.zshrc;如果你用bash,编辑~/.bash_profile或~/.bashrc,在文件末尾添加以下内容:export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/shims:$PATH" eval "$(pyenv init -)" # 仅安装了pyenv-virtualenv插件的用户需要添加下面这行 eval "$(pyenv virtualenv-init -)" - 重载配置文件让修改生效:
zsh执行:source ~/.zshrc
bash执行:source ~/.bash_profile - 验证结果:新开终端执行
pyenv activate py-3.8.6后,再执行which pip,输出路径应该和pyenv which pip结果一致,说明修复完成。
临时应急方案
如果不想修改全局配置,每次使用pip时可以直接用python -m pip代替pip命令,该命令会固定调用当前激活的Python解释器对应的pip版本,不会出现路径匹配错误的问题。
注意:不要使用sudo执行pip相关命令,否则会绕过pyenv的环境限制,直接往系统全局目录安装依赖,导致环境混乱。
内容的提问来源于stack exchange,提问作者Union find
相关产品推荐
相关产品推荐

