如何在 Ubuntu 中安装 Python 并将其更新到 3.9

在本文中,我们将探索在 Ubuntu 系统上安装或更新到最新版本 Python 的最新方法。

什么是 Python?

Python 是一种解释性的、面向对象的、具有动态语义的高级编程语言。 它是高级内置数据结构,结合动态类型和动态绑定,使其对快速应用程序开发非常有吸引力,并可用作脚本或胶水语言将现有组件连接在一起。 Python 简单易学的语法强调可读性,因此降低了程序维护的成本。 Python 支持模块和包,这鼓励程序模块化和代码重用。

https://www.python.org/doc/essays/blurb/

先决条件

我们一如既往地开始运行我们的更新。 这可确保我们所有的系统软件都是最新的。

[email protected]:~# apt update

接下来,我们将添加 software-properties-common。 该软件提供了一些附加脚本,可用于添加和删除 PPA。

[email protected]:~# apt install software-properties-common

添加存储库、更新和安装

现在,我们添加存储库,然后运行另一个更新以允许我们的系统识别更改。

[email protected]:~# add-apt-repository ppa:deadsnakes/ppa [email protected]:~# apt update

最后,我们运行安装以添加最新版本的 Python。 顺便说一句,我们也选择安装 -dev 和 -venv 功能。 这确保我们拥有 Python 3.8、pip 和 virtualenv。

[email protected]:~# apt install python3.9 python3.9-venv python3.9-dev Reading package lists… Done  Building dependency tree  Reading state information… Done  The following additional packages will be installed:    libpython3.9-minimal libpython3.9-stdlib python3.9-minimal  Suggested packages:    python3.9-venv python3.9-doc binfmt-support  The following NEW packages will be installed:    libpython3.9-minimal libpython3.9-stdlib python3.9 python3.9-minimal  0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.  Need to get 4952 kB of archives.  After this operation, 19.8 MB of additional disk space will be used.  Do you want to continue? [Y/n] y  Get:1 https://archive.ubuntu.com/ubuntu focal-updates/universe amd64 libpython3.9-minimal amd64 3.9.0-5~20.04 [751 kB]  Get:2 https://archive.ubuntu.com/ubuntu focal-updates/universe amd64 python3.9-minimal amd64 3.9.0-5~20.04 [2017 kB]  Get:3 https://archive.ubuntu.com/ubuntu focal-updates/universe amd64 libpython3.9-stdlib amd64 3.9.0-5~20.04 [1776 kB]  Get:4 https://archive.ubuntu.com/ubuntu focal-updates/universe amd64 python3.9 amd64 3.9.0-5~20.04 [408 kB]  Fetched 4952 kB in 2s (2068 kB/s)  Selecting previously unselected package libpython3.9-minimal:amd64.  (Reading database … 92316 files and directories currently installed.)  Preparing to unpack …/libpython3.9-minimal_3.9.0-5~20.04_amd64.deb …  Unpacking libpython3.9-minimal:amd64 (3.9.0-5~20.04) …  Selecting previously unselected package python3.9-minimal.  Preparing to unpack …/python3.9-minimal_3.9.0-5~20.04_amd64.deb …  Unpacking python3.9-minimal (3.9.0-5~20.04) …  Selecting previously unselected package libpython3.9-stdlib:amd64.  Preparing to unpack …/libpython3.9-stdlib_3.9.0-5~20.04_amd64.deb …  Unpacking libpython3.9-stdlib:amd64 (3.9.0-5~20.04) …  Selecting previously unselected package python3.9.  Preparing to unpack …/python3.9_3.9.0-5~20.04_amd64.deb …  Unpacking python3.9 (3.9.0-5~20.04) …  Setting up libpython3.9-minimal:amd64 (3.9.0-5~20.04) …  Setting up python3.9-minimal (3.9.0-5~20.04) …  Setting up libpython3.9-stdlib:amd64 (3.9.0-5~20.04) …  Setting up python3.9 (3.9.0-5~20.04) …  Processing triggers for mime-support (3.64ubuntu1) …  Processing triggers for gnome-menus (3.36.0-1ubuntu1) …  Processing triggers for man-db (2.9.1-1) …  Processing triggers for desktop-file-utils (0.24-1ubuntu3) … [email protected]:~# 

验证安装

要验证所需版本的安装,请使用 -V 标志以确保设置正确的版本。

[email protected]:~# python3.9 -V Python 3.9.0+ [email protected]:~#

源码安装

安装先决条件

当您要从源代码安装 Python 3.8 时。 您需要安装一些开发库来编译 Python 源代码。 使用以下命令安装 Python 的先决条件:

搜索最新版本

如果您偶然尝试更新系统并且 apt 没有返回结果,我们可以使用 apt list 命令来定位我们需要的更新。

[email protected]:~# apt list | grep python3.9  WARNING: apt does not have a stable CLI interface. Use with caution in scripts.  idle-python3.9/focal-updates 3.9.0-5~20.04 all  libpython3.9-dbg/focal-updates 3.9.0-5~20.04 amd64  libpython3.9-dev/focal-updates 3.9.0-5~20.04 amd64  libpython3.9-minimal/focal-updates 3.9.0-5~20.04 amd64  libpython3.9-stdlib/focal-updates 3.9.0-5~20.04 amd64  libpython3.9-testsuite/focal-updates 3.9.0-5~20.04 all  libpython3.9/focal-updates 3.9.0-5~20.04 amd64  python3.9-dbg/focal-updates 3.9.0-5~20.04 amd64  python3.9-dev/focal-updates 3.9.0-5~20.04 amd64  python3.9-doc/focal-updates 3.9.0-5~20.04 all  python3.9-examples/focal-updates 3.9.0-5~20.04 all  python3.9-minimal/focal-updates 3.9.0-5~20.04 amd64  python3.9-venv/focal-updates 3.9.0-5~20.04 amd64  python3.9/focal-updates 3.9.0-5~20.04 amd64 [email protected]:~# 

下载和设置

[email protected]:~# apt-get install build-essential checkinstall [email protected]:~# apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev      libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev  [email protected]:~# cd /usr/src/ [email protected]:~# wget https://www.python.org/ftp/python/$version/Python-$version.tgz [email protected]:~# wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz  [email protected]:~# tar zxf Python-$version.tgz [email protected]:~# tar xzf Python-3.8.6.tgz  [email protected]:~# cd Python-$version [email protected]:~# cd Python--3.8.6  [email protected]:~# ./configure --enable-optimizations --with-ensurepip=install [email protected]:~# make -j8 [email protected]:~# make altinstall

合理化命令使用

在上面的三个命令中,我们配置了我们的安装以启用 Python 中的优化。 这使它的运行速度提高了大约 10%。 添加这个标志可能会给整体编译周期增加更多的时间,但是如果你经常使用 Python 工作,这是值得的。 使用 –with-ensurepip=install 标志安装与此部署捆绑在一起的 pip。

使用 -j 选项告诉 make 命令将过程拆分为“并行步骤”以加快编译过程。 即使为并行构建启用了此选项,此步骤也可能需要一段时间。

我们还运行命令 make altinstall 以防止我们的安装替换 /usr/bin/python 中的默认 python 二进制文件。

测试 Python

我们还可以运行 Python 测试套件以确保安装在我们的系统上按预期工作。 要运行测试套件,请输入以下命令。

[email protected]:~# python3.8 -m test

我们的服务器将运行测试一段时间,如果所有测试都通过,我们可以确定我们的新 Python 构建按预期工作!

清理

安装成功后,删除下载的存档以节省磁盘空间

 [email protected]:~# cd /usr/src/  [email protected]:~# rm -f Python-3.8.6.tgz 

将 Python 添加到系统 PATH

(可选信息)

我们还可以将 Python 配置到系统 PATH 中,以允许用户在终端中运行 pip 命令以将软件包安装到我们的主目录中。 将 Python 添加到 PATH 的推荐方法是将您安装的 Python 版本附加到系统范围的 PATH 变量中。 例如,这可以由 /etc/profile.d/ 目录中的脚本定义。

[email protected]:~# vim /etc/profile.d/python.sh  PATH=/opt/python/<PYTHON-VERSION>/bin/:$PATH (<PYTHON-VERSION> is the actual version of Python that we installed earlier.) 

删除旧的 Python 版本

通常,没有理由删除旧版本的 python,因为操作系统上可能存在需要它们存在的脚本。 运行 Python 替代版本的最有效方法是在虚拟环境 (venv) 中。 但是,我们可以查看我们当前在系统上安装的 Python 版本。

[email protected] [~]# ls /usr/bin/python* /usr/bin/[email protected]   /usr/bin/python2.7* /usr/bin/[email protected]  /usr/bin/python3.6*   /usr/bin/[email protected] /usr/bin/[email protected]  /usr/bin/python2.7-config*  /usr/bin/[email protected]         /usr/bin/python3.6m*  [email protected] [~]# 

结论

我们以成为 Hosting™ 中最有帮助的人而自豪!

我们的支持团队由经验丰富的 Linux 技术人员和才华横溢的系统管理员组成,他们对多种网络托管技术(尤其是本文中讨论的技术)有着深入的了解。

如果您对此信息有任何疑问,我们随时可以回答与本文相关问题的任何询问,一年 365 天,一周 7 天,一天 24 小时。

如果您是完全托管的 VPS 服务器, Cloud 专用,VMWare 私有 Cloud, 私有父服务器, 托管 Cloud 服务器或专用服务器所有者,并且您对执行列出的任何步骤感到不舒服,可以通过电话联系我们 @800.580.4985,a 聊天 或支持票以协助您完成此过程。