在本文中,我们将探索在 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 聊天 或支持票以协助您完成此过程。