我已经在Mac中安装pyenv来管理不同的python版本。
之前,我有系统默认的python 2.7,它位于/Library/Frameworks/Python.framework/Versions/2.7/
中
而且我还有位于/usr/local/bin/python3
现在,我安装了位于/Users/hao/.pyenv/shims/python2
上的pyenv和python 2.7.14
当我想使用“ pip”命令安装某些库时,我只是很好奇,如何确保将库安装到正确的python中?例如,我想使用'pip'将火炬或tensorflow安装到pyenv python 2.7.14中。但是不想将它们安装到系统默认的python中。另外,如何更改pip3版本?
我在这里使用which pip
和which pip3
,结果是:
haos-mbp:~ hao$ which pip
/Users/hao/.pyenv/shims/pip
haos-mbp:~ hao$ which pip3
/usr/local/bin/pip3
答案 0 :(得分:0)
使用pyenv
时,您应该能够在工作目录中设置“本地”版本,然后pip
将依赖此版本。
所以在您的情况下:
pyenv local 2.7.14
pip install package-name
在此处查看pyenv
命令的更多信息:https://github.com/pyenv/pyenv/blob/master/COMMANDS.md
但是我确实认为这里缺少的主要部分是一个“虚拟环境”,以确保每个项目的Python包独立(即使它们共享相同的Python版本)。不一定要根据您的要求,但这是公认的最佳实践。有关更多信息,请参见Python文档here。
答案 1 :(得分:0)
我正在分享我的实时经验,
即使我在机器上安装了python3.6,我的系统仍将默认设置为python2.7
但是当我尝试为python3.6下载新软件包时,却使用默认的python2.7下载
所以我遇到了这个 pyenv ,
我安装了 pyenv
安装后
$ pyenv install --list
$ pyenv global
指向默认系统(python2.7)
已安装python3.6
$ pyenv install 3.6.9
从python2.7更改为python3.6
$ pyenv global 3.6.9
在这里,我们必须注意,默认情况下安装 pyenv 会安装 pip 。
使用 pip 命令,我安装了python3.6所需的软件包,而没有添加 pip3 之类的后缀。
$ pip install pyOpenSSL
假设您要安装与python2.7相关的软件包,然后更改python环境
$ pyenv global 2.7.0
,您可以使用pip而不是pip3来安装所需的软件包
pip install package-name