【问题标题】:How to install pip for Python 3.9 on Ubuntu 20.04如何在 Ubuntu 20.04 上为 Python 3.9 安装 pip
【发布时间】: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'

【问题讨论】:

标签: python ubuntu pip ubuntu-20.04


【解决方案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
        

        【讨论】:

          猜你喜欢
          • 2020-09-30
          • 2020-09-19
          • 2021-01-25
          • 2021-02-20
          • 2022-01-20
          • 2017-07-28
          • 2019-07-05
          • 1970-01-01
          • 2021-03-22
          相关资源
          最近更新 更多