步骤 1: 安装依赖
在编译Python 之前,您需要确保系统上安装了所有必需的构建依赖项。在基于Debian 的系统(例如Ubuntu)上,您可以:
代码语言:JavaScript
复制
须藤apt更新
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev \\
libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev
对于基于Red Hat 的系统(例如CentOS 和Fedora),您可以:
代码语言:JavaScript
复制
sudo yum groupinstall \’开发工具\’
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel \\
sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
步骤 2: 下载 Python 源码
您可以从Python官方网站或GitHub上的镜像库下载源代码。使用wget 命令从官方来源下载它。
代码语言:JavaScript
复制
wget https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tgz
接下来,解压缩下载的文件。
代码语言:JavaScript
复制
tar -xvzf Python-3.12.3.tgz
解压后,切换到源目录。
代码语言:JavaScript
复制
cdPython-3.12.3
步骤 3: 配置编译选项
要在编译前配置安装选项,请使用./configure 脚本。你可以指定安装目录(通过–prefix参数)和编译优化等选项(在Python 3.12中,通过–enable-optimizations开启编译优化可以显着提高Python性能。(可能会带来更好的性能,但是编译过程会更长)。
代码语言:JavaScript
复制
./configure –enable-optimizations –prefix=/usr/local/python3.12
我们将Python安装到/usr/local/python3.12并手动添加路径以避免影响其他版本的Python,例如python2。
还有许多其他配置选项可以通过运行./configure –help 查看。
步骤 4: 编译 Python
通过运行make 命令来编译Python。
代码语言:JavaScript
复制
make -j 8 # \’8\’是编译期间使用的核心数。请根据您的系统进行调整
由于编译时间较长,可以使用-j选项在编译时进行并行处理,加快编译速度。该数字最好设置为处理器上的核心数量。
此时,通常会发生SSL 错误。
代码语言:JavaScript
复制
无法构建ssl 模块。
Python 需要OpenSSL 1.1.1 或更高版本
操作系统的OpenSSL版本通常早于1.1.1。此时,请从openssl官网下载新版本,编译安装,并在安装路径的lib目录下收集相关库。然而,安装openssl 通常并不那么顺利。请按照以下步骤操作
代码语言:JavaScript
复制
mkdir ~/openssl
cd ~/openssl
wget https://www.openssl.org/source/openssl-3.3.0.tar.gz
tar -zxvf openssl-3.3.0.tar.gz
cd openssl-3.3.0
./config –prefix=/usr/local/ssl3.3 –openssldir=/usr/local/ssl3.3 共享zlib
制作
安装
如果上述过程在配置步骤中报错:IPC/Cmd.pm not found in @INC。必须安装以下依赖包:
代码语言:JavaScript
复制
sudo yum groupinstall \’开发工具\’
sudo yum install perl-core zlib-devel
上述步骤将openssl 安装到/usr/local/ssl3.3。如果执行过程中报错,可以运行/usr/local/ssl3.3/bin/openss版本。指定lib64 :的路径
代码语言:JavaScript
复制
sudo vim sudo vim /etc/ld.so.conf.d/openssl.conf
# 添加内容/usr/local/ssl3.3/lib64
须藤ldconfig
然后运行/usr/local/ssl3.3/bin/openss version即可查看正确的版本信息。
然而,在编译Python之前还有一个重要的步骤。你要做的就是在/usr/local/ssl3.3/中创建一个lib文件,将相应的so文件放入其中,然后运行以下命令:
代码语言:JavaScript
复制
cd ~/openssl/openssl-3.3.0 # 确保解压到某个目录
mkdir /usr/local/ssl3.3/lib
cp ./*.{so,so.3*,a,pc} /usr/local/ssl3.3/lib
步骤 5: 再次配置、编译 Python
通过运行make 命令来编译Python。
代码语言:JavaScript
复制
./configure –with-openssl=/usr/local/ssl3.3 –prefix=/usr/local/python3.12
make -j 8 # \’8\’是编译期间使用的核心数。请根据您的系统进行调整
现在编译就可以成功完成了。
步骤 6: 安装 Python
编译完成后,运行以下命令安装Python:
代码语言:JavaScript
复制
须藤进行安装
由于我们指定了自己的安装目录/usr/local/python3.12,所以我们不需要使用altinstall。如果不指定安装目录,可以使用altinstall来避免替换系统默认的Python版本。
步骤 6: 验证安装
安装完成后,您可以通过调用以下命令来检查新安装的Python版本:
代码语言:JavaScript
复制
/usr/local/bin/python3.12 –版本
输出应显示Python 版本号。进入Python后,运行import ssl来验证安装。
代码语言:JavaScript
复制
$ /usr/local/python3.12/bin/python3
Linux 上的Python 3.12.3(主要,2024 年5 月23 日,15:08:26)[GCC 4.8.5 20150623(Red Hat 4.8.5-44)]
有关详细信息,请键入“帮助”、“版权”、“信用”或“许可证”。
导入SSL
ssl.OPENSSL_VERSION
“OpenSSL 3.3.0 2024 年4 月9 日”
安装现已完成。
参考链接
学习Flask-91.使用gunicorn部署flask-腾讯云开发者社区-腾讯云
上面关于#centos上编译安装Python时无法构建SSL的相关内容来自源码网络,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92945.html