无法在 python 3.11 上运行 pip

Art*_*hur 20 python pip package

我正在使用 python 3.8 进行全新的 Ubuntu 20.4 安装(或者实际上是重新安装,因为我搞砸了一些事情并且不得不重新开始;除了已/home重新格式化之外的所有内容,因此如果存在残留问题,它就在那里)包括。但是,我想运行 python 3.11,因为这是最新的。我遵循这个指南,基本上相当于

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update 
sudo apt install python3.11
Run Code Online (Sandbox Code Playgroud)

加上

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1
Run Code Online (Sandbox Code Playgroud)

我现在,至少据我所知,默认运行版本 3.11。但是,我遇到了 pip 问题。运行仅pip --version(或pip3 --version) 返回

pip 21.3.1 from /home/usrname/.local/lib/python3.8/site-packages/pip (python 3.8)
Run Code Online (Sandbox Code Playgroud)

另外,当我运行python -m pip(现在使用 3.11 版本)时,我得到

/usr/bin/python: No module named pip
Run Code Online (Sandbox Code Playgroud)

如果我返回到python3.8 -m pip,我会收到欢迎消息,其中包含 pip 必须提供的所有不同命令。所以效果很好。

(因为 deadsnakes 目前将 3.11 版本标记为 alpha,所以我也尝试了 3.10。结果相同:没有 pip。)

我的印象是 pip 默认与 python 捆绑在一起。我怎样才能给我的新版本的 python 一个 pip 来玩?

mfu*_*man 38

我从deadsnakes ppa安装了Python3.11,它没有附带ensurepip或pip,并且引导脚本最初失败,因为它依赖于distutils。我通过安装可选的 distutils 包然后引导来解决这个问题。

apt install python3.11 python3.11-distutils
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11
Run Code Online (Sandbox Code Playgroud)

  • @DL,你的路径上可能有多个版本的Python,尝试使用“python3.11 -m pip --version”明确,看看是否得到预期的结果。 (2认同)

Sma*_*noj 21

 sudo apt install python3.11-venv # as ensurepip is not installed at first
 python3.11 -m ensurepip
Run Code Online (Sandbox Code Playgroud)

  • 我收到“ensurepip 在 Debian/Ubuntu 系统 python 中被禁用” (2认同)

Art*_*hur 2

降级到 python 3.10 后(因为我不知道 3.11 仍在开发中)并修改了一些命令,包括

sudo apt install python3.10-pip
Run Code Online (Sandbox Code Playgroud)

突然它起作用了(我完全确定我已经尝试过)。我也需要

sudo apt install python3.10-distutils
Run Code Online (Sandbox Code Playgroud)

因为皮普说我必须这么做。另外,从这个答案中窃取,

curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
Run Code Online (Sandbox Code Playgroud)

停止

ImportError: cannot import name 'html5lib' from 'pip._vendor' (/usr/lib/python3/dist-packages/pip/_vendor/__init__.py)
Run Code Online (Sandbox Code Playgroud)

错误信息。