Pip 不使用垫片,但是 pyenv 的系统 'pip'
Pip not using shims, but system 'pip' for pyenv
我遇到了在我的 pyenv 环境中获得正确 'pip' 的问题。我试过重新安装 pyenv,但问题仍然存在。我使用的是配备 M1 芯片的 MacBook Air。我实际上是在尝试将我的 Python 3.9.4 安装的 pip 和 site-packages 分开,但不知何故它一直引用系统范围的 'pip'。
当前版本:
<me>:~:$ pyenv versions
* system (set by /Users/<me>/.pyenv/version)
3.9.4
在我的 $HOME 提示符下:
<me>:~:$ python -V
Python 2.7.16
<me>:~:$ which pip
/opt/homebrew/bin/pip
<me>:~:$ pip -V
pip 21.1 from /opt/homebrew/lib/python3.9/site-packages/pip (python 3.9)
在 中,我有一个用于 3.9.4
的 .python_version 文件
<me>:~:$ cd ~//<project 1>/
<me>:~//<project 1>:$ python -V
Python 3.9.4
<me>:~//<project 1>:$ pyenv versions
system
* 3.9.4 (set by /Users/<me>/<project 1>/.python-version)
但是,当我执行“which pip”或“pip -V”时,它会显示系统 pip 二进制文件:
<me>:~/<project 1>:$ which pip
/opt/homebrew/bin/pip
<me>:~//<project 1>:$ pip -V
pip 21.1 from /opt/homebrew/lib/python3.9/site-packages/pip (python 3.9)
关于如何在 pyenv 版本下使用 'pip' 有什么想法吗?
所以,问题的根源在于 shims 文件夹中没有安装 pip 文件。
当我多次重播安装过程时,我注意到在最后的安装步骤中,我看到了以下日志输出:
Requirement already up-to-date: pip in $HOME/.local/lib/python3.9/site-packages (21.1)
我最终删除了我机器上所有现有的 pip 安装(在 opt/homebrew/ 和 $HOME/.local/lib/python* 中)。当我尝试重新安装时,我得到以下信息:
* WARNING: The scripts pip3 and pip3.9 are installed in '/$HOME/.pyenv/versions/3.9.4/bin' which is not on PATH.
* Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
* Successfully installed pip-20.2.3 setuptools-49.2.1
按照上面的建议,将以下代码片段添加到我的 bash_profile 文件中:
export PATH="$HOME/.pyenv/versions/:$PATH"
如果 pyenv 安装程序忽略现有安装并继续确保 pip 安装在 shims 文件夹中,这可能可以避免。
我有一个类似的问题,通过将以下内容添加到我的 .zshrc
(替换 <username>
)来修复它,改编自 here
# pyenv
export PATH="/Users/<username>/.pyenv/shims:$PATH"
export PYENV_ROOT="$HOME/.pyenv"
注意:所有安装都是通过 Brew
完成的
我遇到了在我的 pyenv 环境中获得正确 'pip' 的问题。我试过重新安装 pyenv,但问题仍然存在。我使用的是配备 M1 芯片的 MacBook Air。我实际上是在尝试将我的 Python 3.9.4 安装的 pip 和 site-packages 分开,但不知何故它一直引用系统范围的 'pip'。
当前版本:
<me>:~:$ pyenv versions
* system (set by /Users/<me>/.pyenv/version)
3.9.4
在我的 $HOME 提示符下:
<me>:~:$ python -V
Python 2.7.16
<me>:~:$ which pip
/opt/homebrew/bin/pip
<me>:~:$ pip -V
pip 21.1 from /opt/homebrew/lib/python3.9/site-packages/pip (python 3.9)
在
<me>:~:$ cd ~//<project 1>/
<me>:~//<project 1>:$ python -V
Python 3.9.4
<me>:~//<project 1>:$ pyenv versions
system
* 3.9.4 (set by /Users/<me>/<project 1>/.python-version)
但是,当我执行“which pip”或“pip -V”时,它会显示系统 pip 二进制文件:
<me>:~/<project 1>:$ which pip
/opt/homebrew/bin/pip
<me>:~//<project 1>:$ pip -V
pip 21.1 from /opt/homebrew/lib/python3.9/site-packages/pip (python 3.9)
关于如何在 pyenv 版本下使用 'pip' 有什么想法吗?
所以,问题的根源在于 shims 文件夹中没有安装 pip 文件。
当我多次重播安装过程时,我注意到在最后的安装步骤中,我看到了以下日志输出:
Requirement already up-to-date: pip in $HOME/.local/lib/python3.9/site-packages (21.1)
我最终删除了我机器上所有现有的 pip 安装(在 opt/homebrew/ 和 $HOME/.local/lib/python* 中)。当我尝试重新安装时,我得到以下信息:
* WARNING: The scripts pip3 and pip3.9 are installed in '/$HOME/.pyenv/versions/3.9.4/bin' which is not on PATH.
* Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
* Successfully installed pip-20.2.3 setuptools-49.2.1
按照上面的建议,将以下代码片段添加到我的 bash_profile 文件中:
export PATH="$HOME/.pyenv/versions/:$PATH"
如果 pyenv 安装程序忽略现有安装并继续确保 pip 安装在 shims 文件夹中,这可能可以避免。
我有一个类似的问题,通过将以下内容添加到我的 .zshrc
(替换 <username>
)来修复它,改编自 here
# pyenv
export PATH="/Users/<username>/.pyenv/shims:$PATH"
export PYENV_ROOT="$HOME/.pyenv"
注意:所有安装都是通过 Brew