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

问题描述 投票:0回答:7

在 os x 上使用 pip 时遇到奇怪的问题。

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

这是我尝试找出问题的一些命令的结果:

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 中运行?有什么想法可以解决这个问题吗?

python macos pip
7个回答
48
投票

我运行多个 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)脚本。


15
投票

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

which python

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

vi $(which pip)

你会在顶部看到一条 shebang 线,它可能指向错误的 Python(我也有过一次)。

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

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

4
投票

我也遇到了同样的问题!

我通过brew重新安装了python2

brew reinstall python@2

重新安装后,

pip install packagename
可以使用!


4
投票

尝试通过在终端中运行以下命令来设置别名,

alias pip="/usr/local/bin/pip"
alias pip2="/usr/local/bin/pip"
alias pip3="/usr/local/bin/pip3"

如果这解决了您的问题,那么您需要在 bash 配置文件中添加别名。 请参阅如何创建 Bash 别名?以获取更多信息。

或者,您必须先使用

python2 get-pip.py
重新安装 pip,然后
python3 get-pip.py
get-pip.py 可以在此处下载 https://bootstrap.pypa.io/get-pip.py


0
投票

这些都不适合我,所以我所做的是导航到

C:\Users(用户)\AppData\Local\Programs\Python\

并删除了所有我没有使用的旧Python版本。 (工作过)


0
投票

我的 pip 也瞄准了错误的 Python(我想要 310)。 Python310 -m pip install 对我不起作用,因为 python310 在我的环境中不是变量。相反,我意识到我需要写出路径(在我的例子中是 C:\Python310\python.exe),然后在命令提示符下执行

PATH -m pip install <package>

对我来说是

C:\Python310\python.exe -m pip install <package>

需要额外打字,但效果很好。

现在需要弄清楚如何重新配置我的 pip 以默认返回 Python310...


0
投票

如果这里有人碰巧使用 Windows 10/11...

并安装了新版本的 Python,但你的 pip 未对齐:

检查您的环境变量。

您可能在安装 Python 版本时选中了“添加到路径”选项(我通常这样做,因为它很方便哈哈)。

1.运行 Windows 搜索 WinWin+S 并搜索以下内容:

Edit environment variables for your account

单击弹出的选项。您现在应该看到 2 个包含环境变量的框,一个用于用户,一个用于系统。

在顶部列表框(用户环境变量)中应该有一个项目显示“Path”(不是大写)。

2.双击“路径”选项,您应该会看到一些如下所示的路径:

C:\Users\yourusername\AppData\Local\Programs\Python\Python312\Scripts\
C:\Users\yourusername\AppData\Local\Programs\Python\Python312\

3.如果您看到另一个选项包含您的旧 Python 版本(
Python 311
等),只需将其删除并不要删除新版本:)

就是这样!


如果您不小心删除了两者,只需添加与上面相同的内容即可:

C:\Users\yourusername\AppData\Local\Programs\Python\Python3x\Scripts\
C:\Users\yourusername\AppData\Local\Programs\Python\Python3x\

并将“Python3x”上的“x”替换为您希望其使用的实际 Python 版本。

例如,对于 Python 3.12:

C:\Users\yourusername\AppData\Local\Programs\Python\Python312\Scripts\
C:\Users\yourusername\AppData\Local\Programs\Python\Python312\

3.11:

C:\Users\yourusername\AppData\Local\Programs\Python\Python311\Scripts\
C:\Users\yourusername\AppData\Local\Programs\Python\Python311\

等等。否则,您也可以重新下载 Python 并再次单击“添加到路径”复选框 🙂

© www.soinside.com 2019 - 2024. All rights reserved.