如何在 Ubuntu 20.04 上为 Python 3.9 安装 pip

Posted

技术标签:

【中文标题】如何在 Ubuntu 20.04 上为 Python 3.9 安装 pip【英文标题】:How to install pip for Python 3.9 on Ubuntu 20.04 【发布时间】:2021-04-15 02:13:16 【问题描述】:

Ubuntu 20.04 附带 Python 3.8。 我无法卸载 Python 3.8,但我需要 Python 3.9

我继续安装 Python 3.9:

sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt install python3.9

如何为 python 3.9 安装 pip?

使用安装 pip sudo apt-get install python3-pip 对我不起作用,因为它为 python 3.8 安装 pip

使用python3.9 get-pip.py安装pip会报错:

~/python_tools$ python3.9 get-pip.py 
Traceback (most recent call last):
  File "/home/ubuntu/python_tools/get-pip.py", line 23704, in <module>
    main()
  File "/home/ubuntu/python_tools/get-pip.py", line 198, in main
    bootstrap(tmpdir=tmpdir)
  File "/home/ubuntu/python_tools/get-pip.py", line 82, in bootstrap
    from pip._internal.cli.main import main as pip_entry_point
  File "<frozen zipimport>", line 259, in load_module
  File "/tmp/tmpkwyc8h7j/pip.zip/pip/_internal/cli/main.py", line 10, in <module>
  File "<frozen zipimport>", line 259, in load_module
  File "/tmp/tmpkwyc8h7j/pip.zip/pip/_internal/cli/autocompletion.py", line 9, in <module>
  File "<frozen zipimport>", line 259, in load_module
  File "/tmp/tmpkwyc8h7j/pip.zip/pip/_internal/cli/main_parser.py", line 7, in <module>
  File "<frozen zipimport>", line 259, in load_module
  File "/tmp/tmpkwyc8h7j/pip.zip/pip/_internal/cli/cmdoptions.py", line 18, in <module>
ModuleNotFoundError: No module named 'distutils.util'

【问题讨论】:

我建议在进入 curl 之前检查 Eric Platon 的回答 ***.com/a/68523326/435129 【参考方案1】:

您可以通过以下方式为 python 3.9 安装pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.9 get-pip.py

请务必使用python3.9 而不仅仅是python3,以确保为python 3.9 安装pip

如果您看到任何权限错误,您可能需要使用

python3.9 get-pip.py --user

如果您在运行 python3.9 get-pip.py 时收到类似 No module named 'distutils.util' 的错误,并且您使用的是基于 Debian 的 Linux 发行版,请运行

sudo apt install python3.9-distutils

然后重新运行您的get-pip.py 命令。如果您不在基于 Debian 的发行版上,请为您的发行版的包管理器使用等效命令。

这些说明部分基于 pip 维护者提供的official installation instructions。

【讨论】:

感谢您的回答,但当我尝试 get-pip.py 时出现错误,我将错误添加到问题的正文中。 @Gilson 我更新了我的答案以包含解决方案 谢谢!我感谢您的帮助。成功了! 输入“pip3.9 install”来使用pip pip3 install -t ~/.local/lib/python3.9/site-packages/selenium【参考方案2】:

python 3.4 及更高版本默认包含 Pip。

python3.9 -m pip --version

如果由于某种原因没有安装 pip,您可以使用 get-pip 手动安装:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.9 get-pip.py

【讨论】:

在带有 python3.9 的 Ubuntu 20.04 上来自 ppa:deadsnakes/ppa pip 不在船上。【参考方案3】:

仅依赖deadsnakes/ppa 的替代方法是安装python3.9-venv

sudo apt-get install python3.9-venv
python3.9 -m venv venv
source venv/bin/activate
pip --version
# pip 21.1.3 from /home/.../venv/lib/python3.9/site-packages/pip (python 3.9)

也许随着时间的推移更容易保持连贯性,但会强制进入 Virtualenv。


这种方法在 Ubuntu 18 上出现了问题。线程中针对 OP 目标 (20.04) 的其他建议不起作用。 PyPa 的安装脚本以 Ubuntu 18 结束:

python3.9 get-pip.py
# ...
# AttributeError: 'htmlParser' object has no attribute 'unescape'

【讨论】:

这个答案需要找到它的顶部 sudo apt-get install python3.10-venv 现在更合适了。 python3.9 - m venv venv 在做什么。我读过man-m module-name Searches sys.path for the named module and runs the corresponding .py file as a script. This terminates the option list (following options are passed as arguments to the module).。那么是不是为下面source工作做准备?【参考方案4】:

如果其他人从他们的点子中遇到看似奇怪的 WSL2 行为,TechDog 的建议修复了我的 WSL2 Ubuntu 20.04。正如 TechDog 发布的那样,正是 update-alternatives 行成功了!

update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1

【讨论】:

【参考方案5】:

这是一个奇怪的方法,但它是最简单且有效的:

export PYTHON_VERSION_SHORT=3.9
apt-get install -y python$PYTHON_VERSION_SHORT python3-pip && \
ln -s -f /usr/bin/python$PYTHON_VERSION_SHORT /usr/bin/python3 && \
ln -s -f /usr/bin/python$PYTHON_VERSION_SHORT /usr/bin/python && \
ln -s -f /usr/bin/pip3 /usr/bin/pip

当您安装pip3 时,它(在撰写本文时)是为python3.8 安装的。但是如果您覆盖/usr/bin/python3 以链接到python3.9,则pip3 将使用python3.9 进行解释,并且您将有一个针对python3.9 的工作点

我已经使用它两年了,没有任何问题,但是因为这根本不是一个好的做法,所以如果python3-pippython3.9 出现兼容性问题,它就会崩溃。

【讨论】:

【参考方案6】:

以下是我在 UBUNTU 16.4 中安装的步骤。如果需要,请在前面加上 SUDO。我在命令行中使用python时遇到了一些问题,所以我使用update-alternatives将python3.9默认为python命令,如果需要请更改版本。

apt update
apt install software-properties-common
add-apt-repository ppa:deadsnakes/ppa -y
apt update
apt install python3.9
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.9 get-pip.py

【讨论】:

【参考方案7】:

这在 Ubuntu 18.04 上对我有用:

$ python3.9 -m ensurepip

【讨论】:

以上是关于如何在 Ubuntu 20.04 上为 Python 3.9 安装 pip的主要内容,如果未能解决你的问题,请参考以下文章

在Ubuntu20.04上安装Kubernetes-Kubeadm和Minikube

在 Ubuntu 上为 Android 编译 dlib

如何让 Steam 在 Ubuntu 20.04 上运行

我应该如何在 Ubuntu 20.04 LTS 上安装 Django

如何在 Ubuntu 20.04 上安装 OpenModelica 1.9.5?

如何在 Ubuntu 20.04 的 pgadmin 4 中设置邮件和密码