Pip突然使用了错误版本的Python

时间:2016-03-30 14:08:29

标签: python macos pip

在os x上有一个奇怪的pip问题。

据我所知(并快速查看我的.bash_history似乎已确认)我没有对我的配置进行任何近期更改。唉,pip命令似乎突然使用了不同于以前的python版本。到目前为止,我使用命令pip来管理我的python2库,使用pip3来管理python3库。突然之间,任何运行pip安装的尝试都会失败,并且会出现错误,例如缺少打印语句周围的括号。

以下是我试图找出问题的一些命令的结果:

which pip > /usr/local/bin/pip

which pip3 > /usr/local/bin/pip3

which python > /usr/local/bin/python

python version > Python 2.7.11

pip --version > pip 8.1.1 from /usr/local/lib/python3.5/site-packages (python 3.5)

所以出于某种原因,pip命令似乎是从PyPi2数据库运行但现在在python3中运行?任何想法如何解决这个问题?

4 个答案:

答案 0 :(得分:14)

我运行多个Python版本,因此也有多个pip版本。

但是,每次更新pip时,您都会将标准pip命令替换为您更新的版本。因此,即使pip3 install --upgrade pip会在您的系统中放置/usr/local/bin/pip,也会弄乱Python 2版本。

相反,我将pip作为(可执行)模块运行:

python3 -m pip search <package>

python2 -m pip search <package>

甚至

python3.5 -m pip search <package>

这可以保证您的pip版本始终与您要使用它的Python版本相匹配。键入的时间稍长,但我更喜欢它的明确性(我猜,它遵循Python的禅宗)。

请注意更新pip:

python3.5 -m pip install --upgrade pip

仍将在/usr/local/bin/pip中安装Python 3.5版本,但我只是忽略了这一点。只要注意直接执行pip的(shell)脚本。

答案 1 :(得分:4)

我有完全相同的问题!

我通过brew for(var i=0; i<array1.length;i++){ array1[i].push(array2[i]); }

重新安装python2

重新安装后,brew reinstall python@2有效!

答案 2 :(得分:2)

尝试通过在终端

中运行以下命令来设置别名
alias pip="/usr/local/bin/pip"
alias pip2="/usr/local/bin/pip"
alias pip3="/usr/local/bin/pip3"

如果这样可以解决您的问题,那么您需要在bash配置文件中添加别名。 查看How do I create a Bash alias?了解更多信息。

或者,您必须先使用python2 get-pip.py重新安装pip,然后python3 get-pip.py可以在此处下载{-}}

答案 3 :(得分:0)

找到您想要使用的Python的绝对路径:

which python

打开默认的pip可执行脚本:

vi $(which pip)

你会在顶部看到一条shebang线,可能指向错误的Python(我曾经也是这样)。

指向您想要的Python(参见步骤1),例如:

#!/usr/local/bin/python3.7