在 Ubuntu20.04.4 上PPA或源代码安装 Python3.10.7

        Ubuntu20.04.4 LTS 不默认使用 Python 2 (这不同于 Ubuntu18.04 LTS 等老版本,默认自带的python是python2)。所以,使用下面的命令来检查 Ubuntu 20.04.4 LTS 默认使用的Python版本。

一、更新当前Ubuntu系统的可升级的包

1.1 执行如下更新与升级命令

# 更新包缓存与索引,可以知道包的哪些版本可以被安装或升级
sudo apt update
# 升级包到最新版本
sudo apt upgrade

 1.2 apt 和 apt-get 的区别

        Debian 作为 Ubuntu、Linux Mint 和 elementary OS 等 Linux 操作系统的母板,其具有强健的包管理系统,它的每个组件和应用程序都内置在系统中安装的软件包中。Debian 使用一套名为 Advanced Packaging Tool(APT)的工具来管理这种包系统,不过请不要把它与 apt 命令混淆,它们之间是其实不是同一个东西。在基于 Debian 的 Linux 发行版中,有各种工具可以与 APT 进行交互,以方便用户安装、删除和管理的软件包。apt-get 便是其中一款广受欢迎的命令行工具,另外一款较为流行的是 Aptitude 这一命令行与 GUI 兼顾的小工具。
        最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中。apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。
        所以,apt 可以看作 apt-get 和 apt-cache 命令的子集(简单来说就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合), 可以为包管理提供必要的命令选项。apt-get 虽然没被弃用,但作为普通用户,还是应该首先使用 apt。因为广大 Linux 发行商都在推荐 apt,更主要的还是它提供了 Linux 包管理的必要选项;而且,apt 命令选项更少更易记、也更易用。

二、使用 PPA 源安装 Python3.10.7

2.1 PPA 是什么

        Ubuntu 自带的“软件”应用,可以安装海量软件,既包括发行者支持的软件、社区支持的软件,也包括专有驱动和版权软件。有时,我们需要的软件通过这些渠道仍然无法找到。这时,可以到 PPA 软件源中查找、安装相关软件。
        PPA是Personal Package Archives首字母简写,翻译为中文意思是:个人软件包文档,只有Ubuntu用户可以用,而所有的PPA都是寄存在 launchpad.net网站上。Launchpad(启动器)是Canonical公司所架设的网站,是一个提供维护、支援或连络Ubuntu开发者的软件协作平台。 Launchpad 网站提供的一项源服务,允许个人用户上传软件源代码,通过 Launchpad 进行编译并发布为二进制软件包,作为 apt / 新立得(Synaptic)源供其他用户下载和更新。 PPA也被用来对一些打算进入Ubuntu官方仓库的软件,或者某些软件的新版本进行测试。
        相对于通过Deb包安装来说,使用PPA的好处是,一旦软件有更新,通过sudo apt update 和 sudo apt upgrade这样命令就可以直接升级到新版本,有很多PPA软件源提供多个版本,包括正式稳定版、每日创建版,开发版、测试版等等。添加PPA源语法(可直接到 launchpad.net 官网上去搜索,搜索到后我们就可以直接用 sudo apt-add-repository 命令把 PPA 源添加到 Source list 中),如下:

sudo add-apt-repository ppa:user/ppa-name
# 指令里的user就是那个建立该ppa的人,ppa-name就是这个仓库的名字。比如,zhangsan建了个仓库叫test_zhangsan,那么我们加他的仓库就会是: ppa:zhangsan/test_zhangsan


        删除PPA源,进入源的目录:cd /etc/apt/sources.list.d 。ls 命令可以看到关于源的文件,删掉即可。

2.2 PPA安装Python3.10

# 更新包目录
sudo apt update

# 安装依赖
sudo apt update
sudo apt -y install software-properties-common dirmngr apt-transport-https lsb-release ca-certificates

# 添加 deadsnakes PPA 源
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

# 安装
apt install python3.10

# 查看所有python版本

ls -l /usr/bin/python*
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10

# 选择默认版本

update-alternatives --config python3

# 安装或修复3.10的pip

apt install python3.10-distutils
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
或
python3 get-pip.py --user 后,修改pip指向sudo vim /usr/local/bin/pip3 里的第一行/usr/bin/python 换成 python3 


# 检测版本
python3.10 --version

pip3 --version

三、使用源代码安装 Python3.10.7

3.1 更新系统软件并安装GCC编译器

# 刷新软件包目录
sudo apt update

# 列出当前可用的更新
sudo apt list --upgradable

# 执行更新
sudo apt upgrade -y

# 安装 GCC 编译器
sudo apt install gcc

# 检查安装是否成功,若显示出 GCC 版本则成功
gcc -v


3.2 安装Python3.10其他公共依赖

# 刷新软件包目录
sudo apt update

# 安装依赖,Python3 的部分功能依赖于对应的库(如 OpenSSL、SQLite3、LZMA 等),如果在编译时未能找到这些库,仍然可能完成编译。此时的 Python 解释器看似可以工作,但在需要使用特定功能时就会出问题
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev

3.3 下载Python3.10.7源代码并安装

        在 Python 官网下载界面下载 Python 3.10.7 的源代码,然后上传Ubuntu系统;或者,通过 wget 命令下载:

# wget下载
wget https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tgz

# 解压
tar -xf Python-3.10.7.tgz

# 进入该目录
cd Python-3.10.7/

# 检查依赖与配置编译(--enable-optimizations:用 PROFILE_TASK 启用以配置文件主导的优化(PGO))
./configure --enable-optimizations

# 编译和安装python3.10.7,-j 后面的数字为参与编译的CPU核心数,根据实际运行的机器配置调整
sudo make -j 8

# 安装
sudo make install


        完成安装后,Python 3.10 会与系统原有的 Python 3.8.10 共存。如果 Ubuntu 系统、安装的其他软件等依赖于系统原有的 3.8.10,那就不要移除原有 Python 环境,也不要对 python3 等命令进行修改,可以多版本并行存在一个操作系统。命令行使用直接在命令行使用 python3.10 命令即可调用新安装的解释器:

# 查看该命令所在位置
sudo which python3.10


# 类似的,使用 Python 3.10 的 pip 的命令为 pip3.10,查看 pip3.10 版本
sudo pip3.10 -v

--------------------------------------

版权声明:本文为【PythonJsGo】博主的原创文章,同步在微信【猿小猴子】公众号平台,转载请附上原文出处链接及本声明。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值