基于源碼安裝python 3.12,執(zhí)行make出現(xiàn)如下錯(cuò)誤
_hashlib _ssl _tkinter
To find the necessary bits, look in configure.ac and config.log.
Could not build the ssl module!
Python requires a OpenSSL 1.1.1 or newer
Checked 111 modules (31 built-in, 76 shared, 1 n/a on linux-x86_64, 0 disabled, 3 missing, 0 failed on import)
問題大概描述:找不到ssl模塊。該問題如果不解決的話,缺少 OpenSSL 模塊可能會(huì)影響許多涉及網(wǎng)絡(luò)通信和安全加密的 Python 應(yīng)用程序和庫。例如:ssl,request模塊等好多模塊都沒法使用。所以要要去openssl官網(wǎng)下載安裝,再來安裝python。
openssl 官網(wǎng)
注意:最新的穩(wěn)定版本是3.2系列,支持到2025年11月23日。3.1系列支持到2025年3月14日,3.0系列是一個(gè)長(zhǎng)期支持(LTS)版本,支持到2026年9月7日。所有舊版本(包括1.1.1、1.1.0、1.0.2、1.0.0和0.9.8)現(xiàn)在都不支持,不應(yīng)該使用。建議這些舊版本的用戶盡快升級(jí)到3.2或3.0。對(duì)1.1.1和1.0.2的擴(kuò)展支持可以訪問這些版本的安全修復(fù)程序。
版本推薦
雖然openssl官網(wǎng)推薦最新版本,但是安裝python,執(zhí)行make依然會(huì)報(bào)錯(cuò),我建議下載安裝python3.12時(shí)推薦的openssl 1.1.1版本。
[root@iZwz98v1pircy9j9329rhrZ local]# pwd
/usr/local
[root@iZwz98v1pircy9j9329rhrZ local]# ll
total 60
drwxr-xr-x 8 root root 4096 Apr 4 20:22 aegis
drwxr-xr-x. 2 root root 4096 Apr 4 20:21 bin
drwxr-xr-x. 2 root root 4096 Apr 11 2018 etc
drwxr-xr-x. 2 root root 4096 Apr 11 2018 games
drwxr-xr-x. 4 root root 4096 Apr 4 19:07 include
drwxr-xr-x. 5 root root 4096 Apr 4 20:02 lib
drwxr-xr-x. 6 root root 4096 Apr 4 17:16 lib64
drwxr-xr-x. 2 root root 4096 Apr 11 2018 libexec
drwxr-xr-x 7 root root 4096 Apr 4 19:33 openssl1.1.1w 【可以】
drwxr-xr-x 9 root root 4096 Apr 4 20:50 openssl3.0.1 【不可以】
drwxr-xr-x 7 root root 4096 Apr 4 18:58 openssl3.2.1 【不可以】
drwxr-xr-x. 2 root root 4096 Apr 11 2018 sbin
drwxr-xr-x. 8 root root 4096 Apr 4 17:17 share
drwxr-xr-x. 2 root root 4096 Apr 11 2018 src
drwxr-xr-x 5 root root 4096 Apr 4 17:16 ssl
安裝openssl
- openssl找到1.1.1版本
- 下載上傳到服務(wù)器
[root@iZwz98v1pircy9j9329rhrZ ~]# ll
total 1112740
-rw-r--r-- 1 root root 1069373440 Apr 4 14:47 mysql-8.3.0-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 root root 9893384 Apr 4 19:29 openssl-1.1.1w.tar.gz
drwxrwxr-x 21 root root 4096 Apr 4 20:29 openssl-3.0.13
-rw-r--r-- 1 root root 15294843 Apr 4 17:03 openssl-3.0.13.tar.gz
drwxrwxr-x 26 root root 4096 Apr 4 20:50 openssl-3.2.1
-rw-r--r-- 1 root root 17733249 Apr 4 14:23 openssl-3.2.1.tar.gz
drwxr-xr-x 18 root root 4096 Apr 4 21:38 Python-3.12.2
-rw-r--r-- 1 root root 27116462 Apr 4 15:01 Python-3.12.2.tgz
- 解壓
[root@iZwz98v1pircy9j9329rhrZ openssl-1.1.1w]# tar -zxvf openssl-1.1.1w.tar.gz```
4. 進(jìn)入目錄
```bash
[root@iZwz98v1pircy9j9329rhrZ ~]# cd openssl-1.1.1w/
[root@iZwz98v1pircy9j9329rhrZ openssl-1.1.1w]#
- 運(yùn)行配置文件,指定安裝路徑,安裝到/usr/local/openssl目錄下
[root@iZwz98v1pircy9j9329rhrZ openssl-1.1.1w]# ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1w (0x1010117fL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL file first) ***
*** ***
**********************************************************************
[root@iZwz98v1pircy9j9329rhrZ openssl-1.1.1w]#
- 編譯
[root@iZwz98v1pircy9j9329rhrZ openssl-1.1.1w]# make
- 安裝
[root@iZwz98v1pircy9j9329rhrZ openssl-1.1.1w]# make install
- 切換目錄/usr/bin,備份原始的openssl
[root@iZwz98v1pircy9j9329rhrZ bin]# mv openssl openssl.bak
[root@iZwz98v1pircy9j9329rhrZ bin]# pwd
/usr/bin
[root@iZwz98v1pircy9j9329rhrZ bin]# ll | grep openssl
-rwxr-xr-x 1 root root 555280 Mar 21 2023 openssl.bak
- 創(chuàng)建軟連接,使執(zhí)行openssl時(shí)使用新版本的openssl
[root@iZwz98v1pircy9j9329rhrZ bin]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
[root@iZwz98v1pircy9j9329rhrZ bin]# ll | grep openssl
lrwxrwxrwx 1 root root 30 Apr 4 18:52 openssl -> /usr/local/openssl/bin/openssl
-rwxr-xr-x 1 root root 555280 Mar 21 2023 openssl.bak
- 將安裝路徑添加到環(huán)境變量
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
[root@iZwz98v1pircy9j9329rhrZ ~]# pwd
/root
[root@iZwz98v1pircy9j9329rhrZ ~]# cat .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
[root@iZwz98v1pircy9j9329rhrZ ~]#
- 運(yùn)行 source .bashrc 的目的是重新加載當(dāng)前用戶的 .bashrc 文件,以便應(yīng)用其中所做的更改,而無需注銷并重新登錄。
[root@iZwz98v1pircy9j9329rhrZ ~]# source .bashrc
- 更新共享庫的鏈接器緩存
[root@iZwz98v1pircy9j9329rhrZ ~]# ldconfig
- 檢查是否安裝成功
[root@iZwz98v1pircy9j9329rhrZ ~]# openssl version
OpenSSL 1.1.1w 11 Sep 2023
安裝python
-
官網(wǎng)下載python最新版本,我選擇3.12版本
文章來源:http://www.zghlxwxcb.cn/news/detail-861093.html
-
上傳到服務(wù)器文章來源地址http://www.zghlxwxcb.cn/news/detail-861093.html
[root@iZwz98v1pircy9j9329rhrZ ~]# ll
total 1112736
-rw-r--r-- 1 root root 1069373440 Apr 4 14:47 mysql-8.3.0-1.el7.x86_64.rpm-bundle.tar
drwxrwxr-x 19 root root 4096 Apr 4 22:00 openssl-1.1.1w
-rw-r--r-- 1 root root 9893384 Apr 4 19:29 openssl-1.1.1w.tar.gz
drwxrwxr-x 21 root root 4096 Apr 4 20:29 openssl-3.0.13
-rw-r--r-- 1 root root 15294843 Apr 4 17:03 openssl-3.0.13.tar.gz
drwxrwxr-x 26 root root 4096 Apr 4 20:50 openssl-3.2.1
-rw-r--r-- 1 root root 17733249 Apr 4 14:23 openssl-3.2.1.tar.gz
-rw-r--r-- 1 root root 27116462 Apr 4 15:01 Python-3.12.2.tgz
- 解壓
[root@iZwz98v1pircy9j9329rhrZ ~]# tar -zxvf Python-3.12.2.tgz
- 進(jìn)入解壓好的文件,執(zhí)行配置文件,安裝到/usr/local/python3.12
[root@iZwz98v1pircy9j9329rhrZ Python-3.12.2]# ./configure --prefix=/usr/local/python3.12 --with-openssl=/usr/local/openssl
- 編譯
[root@iZwz98v1pircy9j9329rhrZ Python-3.12.2]# make
- 安裝
[root@iZwz98v1pircy9j9329rhrZ Python-3.12.2]# make install
- 檢查是否安裝成功
[root@iZwz98v1pircy9j9329rhrZ bin]# /usr/local/python3.12/bin/python3.12
Python 3.12.2 (main, Apr 4 2024, 22:39:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>
>```
到了這里,關(guān)于【阿里云 centos7安裝python3.12遇到的坑,openssl】Could not build the ssl module! Python requires a OpenSSL 1.1.1的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!