刚刚读过此评论在升级 pip 时,我运行了:
sudo pip3 install --upgrade pip
正如 @ByteCommander 指出的那样,升级到/usr/local/bin/pip3
,而发行版的版本(来自 python3-pip)位于/usr/bin/pip3
,并且由于 PATH 中的顺序,第一个版本具有优先权。这似乎工作正常,但如果我专门运行 Ubuntu 的版本(16.04),我会收到错误:
/usr/bin/pip3 -V
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
这让我对 python 升级产生了怀疑。因此,我尝试安装一个来自 git repo 的 python 包,并且不在任何 apt-get 存储库中,并且还具有依赖项。
答案1
根据多年处理 Python 依赖问题的经验,我的观点是,您不应该在 apt 之外升级系统 Python 包。这总是会导致此类问题。系统包管理器提供了稳定版本的 Python 和具有复杂依赖系统的各种 Python 包,当您尝试在 apt 之外手动更改这些包时,可能会造成混乱。
我建议清除 python-pip,重新安装 apt 提供的版本,然后仅使用系统 Python 执行系统相关任务和不需要额外软件包的小脚本。对于需要通常使用 pip 安装的其他软件包的开发工作,您可以创建虚拟环境(基本上是不会影响系统 Python 的新 Python 安装),或者更好的是(在我看来),安装 Anaconda Python,它允许您使用 pip 和 conda 安装 Python 软件包而不会破坏系统 Python。