1. 安装编译依赖工具

 yum -y install gcc openssl-devel gcc-c++ compat-gcc-34 compat-gcc-34-c++ libffi-devel

2. 下载python 3.10.0

最新版本下:https://www.python.org/downloads/

 curl -O https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
#crul -O url 下载文件(使用文件本来的名字)。
#curl -o new_name url 下载文件(将文件重新命名为 new_name)
wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
tar zxf Python-3.10.0.tgz
  • -z:使用 gzip 压缩或解压缩;
  • -x:解包;
  • -f:指定文件。
  • 使用 gzip -l Python-3.10.0.tgz 可以查看压缩率。

3. 编译安装 Python

cd Python-3.10.0
./configure --enable-optimizations --with-ssl --prefix=/usr/local/python-3.10.0
  • --enable-optimizations 用于优化编译;
  • --prefix=/usr/local/python-3.10.0 用于以结构化的方式,将 Python 安装到 /usr/local/python-3.10.0
  • 二进制文件在 /usr/local/python-3.10.0/bin
  • 头文件在 /usr/local/python-3.10.0/include
  • 库文件在 /usr/local/python-3.10.0/lib
  • 其它的资源文件在 /usr/local/python-3.10.0/share,如帮助文档。

如果不配置 --prefix,安装文件将分散在多个位置:

  • 二进制文件默认在 /usr/local/bin
  • 头文件在 /usr/local/include
  • 库文件默认在 /usr/local/lib
  • 其它的文件在 /usr/local/share

编译成二进制:

漫长的编译过程~~~

编译时可能会出现很多警告,例如,centOS 最小化安装时没有安装图形化界面,因此编译 Python 中的 tkinter 模块时可能会出现警告。

如果编译失败,可以尝试重新编译,很多时候再编译一次就能成功。你既可以执行 make clean,清除之前的编译文件后再次 make, 也可以全部删除,然后从头再解压、configure、make 一次。

#检查编译结果
make test
#安装软件
make altinstall

设置全局环境变量 PATH,并为 Python 设置一个别名 py。在目录 /etc/profile.d/ 下新建一个文件,此处命名为 python.sh,在文件中写入:

export PATH=/usr/local/python-3.10.0/bin:$PATH
alias py='/usr/local/python-3.10.0/bin/python3.10'

使配置文件立即生效:

source /etc/profile.d/python.sh

除了设置环境变量 PATH,另一种方法是在已有的 PATH 目录下(如 /usr/bin、/usr/sbin)建立 Python 和 pip 的软链接:

ln -s /usr/local/python-3.10.0/bin/python3.10 /usr/bin/python3.10
ln -s /usr/local/python-3.10.0/bin/pip3.10 /usr/bin/pip3.10

添加帮助文档。在 /etc/man_db.conf 中添加一条 MANPATH:

MANDATORY_MANPATH                       /usr/local/python-3.10.0/share/man

添加之后的 man_db.conf 文件,应该如下所示:

MANDATORY_MANPATH                       /usr/man
MANDATORY_MANPATH                       /usr/share/man
MANDATORY_MANPATH                       /usr/local/share/man
MANDATORY_MANPATH                       /usr/local/python-3.10.0/share/man

4. 体验

在命令行输入 py、python3.10、pip3.10 等命令,检查是否可用

$  pip3
pip3     pip3.10  
$ python3
python3            python3.10         python3.10-config  python3-config     
                                    有部分同学可能会有在一些无法连接互联网且版本相对较低的Linux发行版(如centos7序列本)中部署Python 3.10.0及以上版本时,由于python3.10之后版本不在支持libressl来使用ssl,而需要使用openssl1.1.1及以上版本来支持的问题。否则在后续使用过程中会遇导入Python自带的ssl模块报错的问题,导致涉及加解密的代码运行出现非预期报错。在此我将向大家介绍在此场景下的Python源码编译安装过程。
                                    本文详细介绍了如何在不同操作系统(Ubuntu/Debian、CentOS/RHEL、macOS)上,从源码编译安装 Python 的完整过程。首先,文章提供了各平台上所需的依赖工具和库的安装步骤。然后,讲解了如何下载 Python 官方源码包,解压后进行配置和编译,并使用 `altinstall` 避免覆盖系统默认的 Python 版本。最后,文章通过版本验证确保安装成功。此指南适合需要在多平台环境下定制安装 Python 的开发者和系统管理员参考与实践。
                                    目前官网最新版已经更新到Python3.12.4,本篇文章记录了最近在windows系统和Linux系统中,安装和升级Python环境的过程和踩过的一些坑,希望能对大家有所帮助。
                                    中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/清华: https://pypi.tuna.tsinghua.edu.cn/simple。阿里源: https://mirrors.aliyun.com/pypi/simple。阿里云: http://mirrors.aliyun.com/pypi/simple/豆瓣源: https://pypi.douban.com/simple/`华中理工大学: http://pypi.hustunique.com/
                                    为什么可以/需要编译通常在 Windows 下安装软件,只需要下载可执行文件,一直下一步就可以完成安装。而 Linux 下,你可以获取软件的源代码,自行编译生成可执行文件进行安装。用源代码有什么好处呢?你可以根据自己的需要对软件进行修改,甚至提前修补 已经发现但厂商没有更新 的漏洞。这也就是开源的好处。什么是源代码、可执行文件源代码就是用编程语言编写好的程序,其实就是文本文件,可以通过文本编辑器进...