如何将 pip 用于 pyenv?

HAO*_*HEN 9 python pip pyenv

我已经在我的 Mac 中安装了 pyenv 来管理不同的 python 版本。

之前,我有系统默认的 python 2.7/Library/Frameworks/Python.framework/Versions/2.7/ 位于/usr/local/bin/python3

现在,我安装了位于 /Users/hao/.pyenv/shims/python2

我只是好奇,当我想使用“pip”命令安装某个库时,如何确保将库安装到正确的 python 中?例如,我想使用 'pip' 将 Torch 或 tensorflow 安装到 pyenv python 2.7.14 中。但不想将它们安装到系统默认 python 中。另外,如何更改pip3版本?

这里我使用which pipand which pip3,结果是:

haos-mbp:~ hao$ which pip
/Users/hao/.pyenv/shims/pip
haos-mbp:~ hao$ which pip3
/usr/local/bin/pip3
Run Code Online (Sandbox Code Playgroud)

小智 9

我正在分享我的真实经历,

即使我在我的机器上安装了 python3.6,我的系统默认指向 python2.7

但是当我尝试下载python3.6的新包时,却使用默认的python2.7下载

所以我遇到了这个pyenv

我安装了pyenv

安装后

 $ pyenv install --list
 $ pyenv global
Run Code Online (Sandbox Code Playgroud)

指向默认系统(python2.7)

安装了python3.6

$ pyenv install 3.6.9
Run Code Online (Sandbox Code Playgroud)

从python2.7更改为python3.6

$ pyenv global 3.6.9
Run Code Online (Sandbox Code Playgroud)

这里,我们要注意的是,安装pyenv时默认会安装pip 。

使用pip命令我安装了 python3.6 所需的包,而没有添加像pip3这样的后缀号。

 $ pip install pyOpenSSL
Run Code Online (Sandbox Code Playgroud)

假设如果你想安装与python2.7相关的包然后更改python环境

$ pyenv global 2.7.0
Run Code Online (Sandbox Code Playgroud)

您可以使用 pip 而不是使用 pip3 安装所需的包

pip install package-name
Run Code Online (Sandbox Code Playgroud)


小智 5

使用 时pyenv,您应该能够在您工作的目录中设置您的“本地”版本,然后pip将依赖此版本。

所以在你的情况下:

pyenv local 2.7.14
pip install package-name
Run Code Online (Sandbox Code Playgroud)

pyenv此处查看有关命令的更多信息:https : //github.com/pyenv/pyenv/blob/master/COMMANDS.md

但我确实认为这里缺少的主要部分是一个“虚拟环境”,以保持每个项目的 Python 包独立(即使它们共享相同的 Python 版本)。根据您的要求,这不是必需的,但这是公认的最佳实践。有关更多信息,请参阅此处的 Python 文档。

  • 不幸的是,pip 仍然会为系统 python 安装,而不是本地版本。 (14认同)
  • @kaiya 请详细说明您的意思。 (2认同)