centos 编译安装 Python 时遇到无法构建 SSL python无法pip install

centos 编译安装 Python 时遇到无法构建 SSL步骤 1: 安装依赖
在编译 Python 之前,你需要确保你的系统安装了所有必须的构建依赖。在基于 Debian 的系统上,像 Ubuntu 这样的

步骤 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

Like (0)
CSDN的头像CSDN
Previous 2024年7月4日
Next 2024年7月4日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注