如何在Ubuntu 20.04上安装最新版本的Python 3.9.5?

我使用以下方法更新了我的系统:
sudo apt-get update && sudo apt-get upgrade

然后运行以下命令来安装 python3.9:
sudo apt-get install python3.9

这将产生输出:

Reading package lists... Done
Building dependency tree
Reading state information... Done
python3.9 is already the newest version (3.9.5-3~20.04.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

然而,当我运行python3 -V时,它仍然告诉我我正在使用3.8.5版本。我该如何解决这个问题?
3个回答

你可以使用命令运行python3.9
python3.9

(而不是使用命令pythonpython3

将默认版本的python3更改为python3.9并不是一个好主意,因为这可能会破坏您的Ubuntu安装。相反,可以手动调用它,使用python3.9


除了明确指定python3.9并在全局范围内使用它(如Archisman Panigrahi的回答中所解释的)...您还可以创建一个隔离的虚拟环境,其中python3 -V将报告Python 3.9
安装此功能的方法如下:
sudo apt install python3-venv

要创建一个Python3.9的虚拟环境,首先你需要创建一个目录,并使用cd命令进入该目录,就像这样:
mkdir my_env && cd my_env

然后,在该目录下创建一个新的Python3.9虚拟环境,方法如下:
python3.9 -m venv env

要使用此环境,请按以下方式激活:

source env/bin/activate

您的命令提示符将显示为(env),如下所示:
(env) $

在此期间,python3 -V 将报告 Python 3.9,命令、模块安装或修改将被局限于此虚拟环境中。
完成后,可以像这样停用此 Python3.9 虚拟环境:
deactivate

我已经安装了Python3.11,但是运行"python3.11 -m venv env"时出现错误:Error: Command '['/home/<user>/python3.11-venv/env/bin/python3.11', '-m', 'ensurepip', '--upgrade', '--default-pip']' 返回了非零的退出状态 1。 为了解决这个问题,我需要安装相应的venv包,可以使用命令'sudo apt install python3.11-venv'。同时,你也可以参考这个问题的链接:https://stackoverflow.com/questions/69594088/error-when-creating-venv-error-command-im-ensurepip-upgrade-def - rome
@rome 有关于Python3.11,请参考 https://askubuntu.com/a/1443735 - Raffa

考虑使用AnacondaMiniconda(我推荐Miniconda)安装Python。Conda可以轻松管理不同的Python版本和虚拟环境。 sudo wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh sudo chmod +x Miniconda3-latest-Linux-x86_64.sh ./Miniconda3-latest-Linux-x86_64.sh 按回车键直到出现"yes"或"no"的提示,然后输入"yes"接受使用条款。
如果你使用的是除bash之外的shell,请输入: conda init <SHELL_NAME>(支持的shell包括:fish、tcsh、xonsh、zsh)
关闭并重新打开终端。输入conda activate激活(base) conda环境。
创建一个Python 3.9.5环境,并根据需要自定义名称:

conda create -n myenv python=3.9.5

创建完成后,您可以激活并使用该Python环境:

conda activate myenv

完成后,您可以使用以下命令取消激活环境:

conda deactivate

您使用pipconda安装的任何软件包都将局限于您正在使用的环境,因此您不必担心软件包冲突。只需不要在(base)环境中安装所有内容,因为在新创建的conda环境中会复制(base)中安装的所有内容。

来源:

在Ubuntu上设置Miniconda

Conda备忘单

Anaconda文档


1对于隔离和使用虚拟环境的概念给予**+1**。然而,我在Ubuntu上添加了一个我认为更简单的方法的答案 :) - Raffa
@Raffa Miniconda/Anaconda有许多科学包,这些包在pip上是无法获得的。 - Archisman Panigrahi