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

新手上路,请多包涵

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

我继续并从以下位置安装了 Python 3.9:

sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt 安装 python3.9

如何为 python 3.9 安装 pip?

使用 sudo apt-get install python3-pip 安装 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'

原文由 Gilson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

您可以通过以下方式为 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 维护者提供的 官方安装说明


我的这部分回答有点超出问题的范围,因为这个问题专门针对 python 3.9。但是,对于任何试图在 python 3.6 或更早版本上安装 pip 的人,在 https://bootstrap.pypa.io/get-pip.py 编写文件时仅支持 python 3.7 或更新版本。

解决方法是改为从 https://bootstrap.pypa.io/pip/<python version>/get-pip.py 下载。例如,如果要为 python 3.6 安装 pip,则可以从 https://bootstrap.pypa.io/pip/3.6/get-pip.py 下载,然后照常执行上述所有步骤。

原文由 Shane Bishop 发布,翻译遵循 CC BY-SA 4.0 许可协议

仅依赖于 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'

原文由 Eric Platon 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题