在 Debian 11 / Debian 10 上安装 Python 3.10

作者: TAIS3 分类: 杂七杂八 发布时间: 2021-11-24 17:25

Python 3.10 是 Python 的最新发布版本,但与之前的 Python 3.9 版本相比并不稳定,最终候选版本尚未完成。Python 是一种广泛使用的开源面向对象编程语言,由于其简单易学的语法而广受欢迎。Python用于以下领域:

  • 处理大数据和执行复杂的数学运算。
  • 连接到数据库系统,读取和修改文件。
  • 快速原型设计或生产就绪的软件开发。
  • 与软件一起使用以创建工作流程。
  • 创建网络应用程序。

最新的发布版本,Python 3.10 带有以下很酷的特性;

  • 结构模式匹配
  • 带括号的上下文管理器
  • 更好的错误信息
  • 具有用于调试的精确数字的解释器改进
  • 有关允许联合类型为 X|Y、参数规范变量等的键入功能的更多更新
  • 安全更新等

了解了 Python 3.10 的新功能后,让我们将其安装到我们的 Debian 11|10 系统上。

开始安装

对于本指南,您将需要:

  1. 已安装 Debian 11|10 操作系统
  2. 具有 sudo 权限的用户。

更新您的系统。

sudo apt update && sudo apt upgrade

在 Debian 11 / Debian 10 上下载 Python 3.10

在本指南中,我们将通过从源代码构建 Python 3.10 在 Debian 11|10 上安装它。这种方法的一个优点是我们可以保证使用最新的 Python 版本。

我们首先需要安装所需的依赖项,以便能够从源代码构建 Python 3.10。

sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev

然后从 Python官方发布页面下载 Python 3.10 。在此页面上,下载 Python 3.10 Gzippeed tarball。或者,获取下载链接并使用 Wget 将其拉出,如图所示。

wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz

下载 tarball 后,将其解压缩如下。

tar -xf Python-3.10.*.tgz

导航到解压目录并运行 configure 命令以检查所需的依赖项是否可用。在命令中,–enable-optimizations 标志用于优化二进制文件并运行多个测试

cd Python-3.10.*/
./configure --enable-optimizations

示例输出:

checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for python3.10... no
checking for python3... python3
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... "linux"
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
.........
configure: creating ./config.status
config.status: creating Makefile.pre
config.status: creating Misc/python.pc
config.status: creating Misc/python-embed.pc
config.status: creating Misc/python-config.sh
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
creating Modules/Setup.local
creating Makefile

检查完成后,从源代码构建 Python 3.10,如下所示。请记住使用 -j 标志加快进程。这指定了系统中的内核数。nproc命令显示您的系统内核。

make -j 4

示例输出:

.................
changing mode of build/scripts-3.10/pydoc3 from 644 to 755
changing mode of build/scripts-3.10/idle3 from 644 to 755
changing mode of build/scripts-3.10/2to3 from 644 to 755
renaming build/scripts-3.10/pydoc3 to build/scripts-3.10/pydoc3.10
renaming build/scripts-3.10/idle3 to build/scripts-3.10/idle3.10
renaming build/scripts-3.10/2to3 to build/scripts-3.10/2to3-3.10
gcc -pthread -c -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall    -fno-semantic-interposition -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -fprofile-use -fprofile-correction -I./Include/internal  -I. -I./Include    -DPy_BUILD_CORE -o Programs/_testembed.o ./Programs/_testembed.cgcc -pthread   -fno-semantic-interposition  -Xlinker -export-dynamic -o Programs/_testembed Programs/_testembed.o libpython3.10.a -lcrypt -lpthread -ldl  -lutil -lm   -lm 
make[1]: Leaving directory '/home/klinsmann/Python-3.10.0'

make 完成后,继续并在 Debian 11|10 上安装 Python 3.10,如下所示。

sudo make altinstall

 altinstall 标志用于维护/usr/bin/python 中的默认 Python 二进制路径。

输出:

Looking in links: /tmp/tmpjgyu604w
Processing /tmp/tmpjgyu604w/setuptools-57.4.0-py3-none-any.whl
Processing /tmp/tmpjgyu604w/pip-21.2.3-py3-none-any.whl
Installing collected packages: setuptools, pip
  WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/10151>
  distutils: /usr/local/include/python3.10/setuptools
  sysconfig: /home/klinsmann/Python-3.10.0/Include/setuptools
  WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/10151>
  distutils: /usr/local/include/python3.10/pip
  sysconfig: /home/klinsmann/Python-3.10.0/Include/pip
Successfully installed pip-21.2.3 setuptools-57.4.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

验证您的安装。

$ python3.10 --version
Python 3.10.0

在 Debian 11|10 上安装 Python 模块|扩展

扩展和模块在 Python 上是必不可少的,因为它们为 Python 应用程序添加了功能。这些扩展和模块可以使用 Python 包管理器 (PIP) 安装在 Debian 11|10 上,该管理器使用以下命令安装:

sudo apt install python3-pip

使用 PIP,您可以使用语法轻松安装所选模块。

sudo pip install module-name

让我们使用一个名为beautifulsoup4的模块来演示这一点。

sudo pip install beautifulsoup4

示例输出:

Collecting beautifulsoup4
  Downloading beautifulsoup4-4.10.0-py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 259 kB/s 
Collecting soupsieve>1.2
  Downloading soupsieve-2.2.1-py3-none-any.whl (33 kB)
Installing collected packages: soupsieve, beautifulsoup4
Successfully installed beautifulsoup4-4.10.0 soupsieve-2.2.1

创建 Python 虚拟环境

Python 虚拟环境是安装 Python 解释器、库和脚本的地方。为了确保 Python 正确安装在我们的 Debian 11|10 系统上,让我们创建一个简单的 Python 项目。

创建项目目录。

mkdir ~/sample_app && cd ~/sample_app

在目录中,我们将为 sample_app 创建一个虚拟环境

python3.10 -m venv sample_app_venv

下一步是激活环境。

source sample_app_venv/bin/activate

示例输出:

root@debian:~/sample_app# source sample_app_venv/bin/activate
(sample_app_venv) root@debian:~/sample_app# 

从输出中,我们现在在 shell 中,应用程序的名称是前缀。使用命令退出虚拟环境。

deactivate

发表回复