在本文中,我们将探索在我们的 Ubuntu 系统上安装或更新到最新版本 Python 的最新方法。
什么是 Python?
Python 是一种具有动态语义的解释型、面向对象的高级编程语言。 它是高级内置数据结构,结合动态类型和动态绑定,使其对快速应用程序开发非常有吸引力,并可用作脚本或胶水语言将现有组件连接在一起。 Python 简单易学的语法强调可读性,因此降低了程序维护的成本。 Python 支持模块和包,这鼓励程序模块化和代码重用。
https://www.python.org/doc/essays/blurb/
先决条件
我们一如既往地从运行更新开始。 这确保了我们所有的系统软件都是最新的。
root@host:~# apt update
接下来,我们将添加software-properties-common。 该软件提供了一些附加脚本,可用于添加和删除 PPA。
root@host:~# apt install software-properties-common
添加存储库、更新和安装
现在,我们添加存储库,然后运行另一个更新以允许我们的系统识别更改。
root@host:~# add-apt-repository ppa:deadsnakes/ppa
root@host:~# apt update
最后,我们运行安装以添加最新版本的 Python。 顺便说一句,我们也选择安装 -dev 和 -venv 功能。 这确保我们拥有 Python 3.8、pip 和 virtualenv。
root@host:~# 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) …
root@host:~#
验证安装
要验证我们安装了所需版本,请使用 -V 标志来确保设置了正确的版本。
root@host:~# python3.9 -V
Python 3.9.0+
root@host:~#
源安装
安装先决条件
因为您要从源代码安装 Python 3.8。 您需要安装一些开发库来编译 Python 源代码。 使用以下命令安装 Python 的先决条件:
搜索最新版本
如果您偶然尝试更新您的系统并且 apt 没有返回任何结果,我们可以使用 apt list 命令来找到我们需要的更新。
root@host:~# 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
root@host:~#
下载和设置
root@host:~# apt-get install build-essential checkinstall
root@host:~# apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev
libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
root@host:~# cd /usr/src/
root@host:~# wget https://www.python.org/ftp/python/$version/Python-$version.tgz
root@host:~# wget https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz
root@host:~# tar zxf Python-$version.tgz
root@host:~# tar xzf Python-3.8.6.tgz
root@host:~# cd Python-$version
root@host:~# cd Python--3.8.6
root@host:~# ./configure --enable-optimizations --with-ensurepip=install
root@host:~# make -j8
root@host:~# make altinstall
合理化命令用法
在上面的三个命令中,我们将安装配置为启用 Python 中的优化。 这使它的运行速度提高了大约 10%。 添加此标志可能会增加整个编译周期的时间,但如果您经常使用 Python 工作,那么它是值得的。 使用 –with-ensurepip=install 标志安装与此部署捆绑的 pip。
使用 -j 选项告诉 make 命令将过程拆分为“并行步骤”以加快编译过程。 即使为并行构建启用了此选项,此步骤也可能需要一段时间。
我们还运行命令 make altinstall 以防止我们的安装替换 /usr/bin/python 中的默认 python 二进制文件。
测试 Python
我们还可以运行 Python 测试套件以确保安装在我们的系统上按预期工作。 要运行测试套件,请键入以下命令。
root@host:~# python3.8 -m test
我们的服务器将运行测试一段时间,如果所有测试都通过,我们可以确定我们的新 Python 构建按预期工作!
清理
安装成功后,删除下载的存档以节省磁盘空间
root@host:~# cd /usr/src/
root@host:~# rm -f Python-3.8.6.tgz
将 Python 添加到系统 PATH
(可选信息)
我们还可以将 Python 配置到系统 PATH 中,以允许用户在终端中运行 pip 命令将软件包安装到我们的主目录中。 将 Python 添加到 PATH 的推荐方法是将安装的 Python 版本附加到系统范围的 PATH 变量中。 为了 example,这可以由 /etc/profile.d/ 目录中的脚本定义。
root@host:~# 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 版本。
root@host [~]# ls /usr/bin/python*
/usr/bin/python@ /usr/bin/python2.7* /usr/bin/python2-config@ /usr/bin/python3.6* /usr/bin/python-config@ /usr/bin/python2@ /usr/bin/python2.7-config* /usr/bin/python3@ /usr/bin/python3.6m*
root@host [~]#
结论
我们以成为 Hosting™ 中最有帮助的人而自豪!
我们的支持团队由经验丰富的 Linux 技术人员和才华横溢的系统管理员组成,他们对多种网络托管技术有着深入的了解,尤其是本文中讨论的技术。
如果您对此信息有任何疑问,我们将随时为您解答与本文相关问题的任何询问,每天 24 小时、每周 7 天、每年 365 天。
如果您是完全托管的 VPS 服务器, Cloud 专用,VMWare 私有 Cloud私有父服务器, 托管 Cloud 服务器或专用服务器所有者,并且您对执行概述的任何步骤感到不舒服,可以通过电话@800.580.4985 联系我们, 聊天 或支持票以帮助您完成此过程。