在Ubuntu 22.04系统上安装多个Python版本

ubuntu22.04系统python多版本安装

  • 1 ubuntu22.04常规方法无法把python升级到最新版本
  • 2 APT PPA安装方式可升级python到当前最新的3.12
  • 3 通过APT PPA方式安装python3.12
  • 3.1 升级ubuntu环境
  • 3.2 安装python3.12
  • 3.3 设置默认python版本
  • 4 升级pip
  • 5 参考文献
  • 1 ubuntu22.04常规方法无法把python升级到最新版本

    ubuntu 22.04自带的python版本是3.10.12,python3.11版增加了几个新的特性,包括case语句的支持,当前的最新版本是3.12.3。
    用ubuntu的apt update只能升级python到3.11.0,源码安装3.12版时,ssl包要求的openssl版本是1.1.1,低于ubuntu系统自带的3.0.2,编译python3.12.3源码是会出很多lib库缺失错误。
    经过百度,找到“APT PPA”方式,可以安装编译好的python多个版本、包括最新版本。

    2 APT PPA安装方式可升级python到当前最新的3.12

    PPA是"Personal package archives"的首字母缩写,这是由“deadsnakes” team维护的ubuntu系统下的非官方python包,当前提供的python版本从3.8到3.12,可以安装他们维护的最新python版本。其官网地址是:https://launchpad.net/~deadsnakes。

    3 通过APT PPA方式安装python3.12

    3.1 升级ubuntu环境

    升级系统:

    sudo apt update
    

    升级陈旧的软件包:

    sudo apt upgrade
    

    3.2 安装python3.12

    增加PPA repository:

    sudo add-apt-repository ppa:deadsnakes/ppa
    

    刷新APT cache然后安装python 3.12

    sudo apt update
    sudo apt install python3.12
    

    到此就完成了python3.12的安装,你可以根据需要有选择的安装其他几个扩展包:

    sudo apt install python3.12-{tk,dev,dbg,venv,gdbm,distutils}
    

    如果不需要某个扩展包,比如venv,可以从{}中将venv去除。
    这些扩展包在国外,全部下载可能需要几十分钟的时间。

    3.3 设置默认python版本

    当系统中有多个python版本时,为了使用中不至于混乱,可以将其中一个版本设为系统默认版本,以后根据需要可以更改系统默认版本。
    设置系统默认版本使用“updaet-alternatives”命令,步骤包含创建符号链接和设置默认项两步。
    为系统中原有的3.10、新安装的3.12两个版本创建符号链接:

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.12 3
    

    行尾的数字1、3代表优先级,一般为1~9之间的数字,值越大优先级越高。

    设置默认python版本:

    sudo update-alternatives --config python
    

    命令结果如下图所示:

    系统里有两个python版本,3.10和3.12,3.10行前有个“*”标,表示当前默认版本是3.10。“Selection”列不同的数字代表不同的版本,输入数字1,表示选择3.10版。
    执行“python –version”,可以看到返回的结果是“Python 3.10.12”。再次执行“sudo update-alternatives –config python”命令,输入数字2,可以看到python版本切换到了3.12.3。

    4 升级pip

    为python3.12安装pip并升级:

    $ sudo apt install python3-pip
    $ python -m pip install --upgrade pip
    Defaulting to user installation because normal site-packages is not writeable
    Requirement already satisfied: pip in ./.local/lib/python3.12/site-packages (24.0.0)
    

    注意执行upgrade pip时不加“sudo”,在用户home目录下执行。两个版本的pip都升级后,在用户home目录的./local目录中可看到创建好的相关目录。

    如果想确保pip对应正确的python版本,可以参考3.3节用upgrade-alternatives命令对pip也操作一遍。

    5 参考文献

    https://www.linuxcapable.com/install-python-3-12-on-ubuntu-linux/

    作者:cj31415

    物联沃分享整理
    物联沃-IOTWORD物联网 » 在Ubuntu 22.04系统上安装多个Python版本

    发表回复