在 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 版本,因此也运行多个 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)脚本。
找到您想要使用的 Python 的绝对路径:
which python
打开默认的 pip 可执行脚本:
vi $(which pip)
你会在顶部看到一条 shebang 线,它可能指向错误的 Python(我也有过一次)。
指向您想要的Python(参见步骤1),例如:
#!/usr/local/bin/python3.7
我也遇到了同样的问题!
我通过brew重新安装了python2
brew reinstall python@2
重新安装后,
pip install packagename
可以使用!
尝试通过在终端中运行以下命令来设置别名,
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
这些都不适合我,所以我所做的是导航到
C:\Users(用户)\AppData\Local\Programs\Python\
并删除了所有我没有使用的旧Python版本。 (工作过)
我的 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...
并安装了新版本的 Python,但你的 pip 未对齐:
您可能在安装 Python 版本时选中了“添加到路径”选项(我通常这样做,因为它很方便哈哈)。
Edit environment variables for your account
单击弹出的选项。您现在应该看到 2 个包含环境变量的框,一个用于用户,一个用于系统。
在顶部列表框(用户环境变量)中应该有一个项目显示“Path”(不是大写)。
C:\Users\yourusername\AppData\Local\Programs\Python\Python312\Scripts\
C:\Users\yourusername\AppData\Local\Programs\Python\Python312\
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 并再次单击“添加到路径”复选框 🙂