如何在 Ubuntu 20.04 上为 Python 3.9 安装 pip
How to install pip for Python 3.9 on Ubuntu 20.04
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 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。
Pip 默认包含在 python 3.4 及更高版本中。
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
以下是我在 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
如果其他人 运行 从他们的 pips 进入看似奇怪的 WSL2 行为,TechDog 的建议修复了我的 WSL2 Ubuntu 20.04。就像 TechDog 发布的那样,update-alternatives 行成功了!
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
仅依赖 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。
此方法在Ubuntu18 上出现问题。针对OP 目标(20.04) 的线程中的其他建议无效。 PyPa 的安装脚本在 Ubuntu 18 结束:
python3.9 get-pip.py
# ...
# AttributeError: 'HTMLParser' object has no attribute 'unescape'
这对我有用 Ubuntu 18.04:
$ python3.9 -m ensurepip
这是一个奇怪的方法,但它是最简单的并且有效:
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
覆盖到 link 再到 python3.9
,那么 pip3
将被解释为 python3.9,你将有一个针对 python3.9
我已经使用它两年了,没有出现任何问题,但是祈祷吧,因为这根本不是一个好习惯,如果 python3-pip
和 python3.9
存在兼容性问题,它就会崩溃。
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
使用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 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。
Pip 默认包含在 python 3.4 及更高版本中。
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
以下是我在 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
如果其他人 运行 从他们的 pips 进入看似奇怪的 WSL2 行为,TechDog 的建议修复了我的 WSL2 Ubuntu 20.04。就像 TechDog 发布的那样,update-alternatives 行成功了!
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
仅依赖 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。
此方法在Ubuntu18 上出现问题。针对OP 目标(20.04) 的线程中的其他建议无效。 PyPa 的安装脚本在 Ubuntu 18 结束:
python3.9 get-pip.py
# ...
# AttributeError: 'HTMLParser' object has no attribute 'unescape'
这对我有用 Ubuntu 18.04:
$ python3.9 -m ensurepip
这是一个奇怪的方法,但它是最简单的并且有效:
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
覆盖到 link 再到 python3.9
,那么 pip3
将被解释为 python3.9,你将有一个针对 python3.9
我已经使用它两年了,没有出现任何问题,但是祈祷吧,因为这根本不是一个好习惯,如果 python3-pip
和 python3.9
存在兼容性问题,它就会崩溃。