|
Couldnotbuildthesslmodule!基于源码安装python3.12,执行`make`出现如下错误openssl官网版本推荐安装openssl安装python基于源码安装python3.12,执行make出现如下错误_hashlib_ssl_tkinterTofindthenecessarybits,lookinconfigure.acandconfig.log.Couldnotbuildthesslmodule!PythonrequiresaOpenSSL1.1.1ornewerChecked111modules(31built-in,76shared,1n/aonlinux-x86_64,0disabled,3missing,0failedonimport)1234567问题大概描述:找不到ssl模块。该问题如果不解决的话,缺少OpenSSL模块可能会影响许多涉及网络通信和安全加密的Python应用程序和库。例如:ssl,request模块等好多模块都没法使用。所以要要去openssl官网下载安装,再来安装python。openssl官网注意:最新的稳定版本是3.2系列,支持到2025年11月23日。3.1系列支持到2025年3月14日,3.0系列是一个长期支持(LTS)版本,支持到2026年9月7日。所有旧版本(包括1.1.1、1.1.0、1.0.2、1.0.0和0.9.8)现在都不支持,不应该使用。建议这些旧版本的用户尽快升级到3.2或3.0。对1.1.1和1.0.2的扩展支持可以访问这些版本的安全修复程序。版本推荐虽然openssl官网推荐最新版本,但是安装python,执行make依然会报错,我建议下载安装python3.12时推荐的openssl1.1.1版本。[root@iZwz98v1pircy9j9329rhrZlocal]#pwd/usr/local[root@iZwz98v1pircy9j9329rhrZlocal]#lltotal60drwxr-xr-x8rootroot4096Apr420:22aegisdrwxr-xr-x.2rootroot4096Apr420:21bindrwxr-xr-x.2rootroot4096Apr112018etcdrwxr-xr-x.2rootroot4096Apr112018gamesdrwxr-xr-x.4rootroot4096Apr419:07includedrwxr-xr-x.5rootroot4096Apr420:02libdrwxr-xr-x.6rootroot4096Apr417:16lib64drwxr-xr-x.2rootroot4096Apr112018libexecdrwxr-xr-x7rootroot4096Apr419:33openssl1.1.1w【可以】drwxr-xr-x9rootroot4096Apr420:50openssl3.0.1【不可以】drwxr-xr-x7rootroot4096Apr418:58openssl3.2.1【不可以】drwxr-xr-x.2rootroot4096Apr112018sbindrwxr-xr-x.8rootroot4096Apr417:17sharedrwxr-xr-x.2rootroot4096Apr112018srcdrwxr-xr-x5rootroot4096Apr417:16ssl12345678910111213141516171819安装opensslopenssl找到1.1.1版本下载上传到服务器[root@iZwz98v1pircy9j9329rhrZ~]#lltotal1112740-rw-r--r--1rootroot1069373440Apr414:47mysql-8.3.0-1.el7.x86_64.rpm-bundle.tar-rw-r--r--1rootroot9893384Apr419:29openssl-1.1.1w.tar.gzdrwxrwxr-x21rootroot4096Apr420:29openssl-3.0.13-rw-r--r--1rootroot15294843Apr417:03openssl-3.0.13.tar.gzdrwxrwxr-x26rootroot4096Apr420:50openssl-3.2.1-rw-r--r--1rootroot17733249Apr414:23openssl-3.2.1.tar.gzdrwxr-xr-x18rootroot4096Apr421:38Python-3.12.2-rw-r--r--1rootroot27116462Apr415:01Python-3.12.2.tgz12345678910解压[root@iZwz98v1pircy9j9329rhrZopenssl-1.1.1w]#tar-zxvfopenssl-1.1.1w.tar.gz```4.进入目录```bash[root@iZwz98v1pircy9j9329rhrZ~]#cdopenssl-1.1.1w/[root@iZwz98v1pircy9j9329rhrZopenssl-1.1.1w]#12345运行配置文件,指定安装路径,安装到/usr/local/openssl目录下[root@iZwz98v1pircy9j9329rhrZopenssl-1.1.1w]#./config--prefix=/usr/local/openssl--openssldir=/usr/local/opensslsharedzlibOperatingsystem:x86_64-whatever-linux2ConfiguringOpenSSLversion1.1.1w(0x1010117fL)forlinux-x86_64Usingos-specificseedconfigurationCreatingconfigdata.pmCreatingMakefile*******************************************************************************OpenSSLhasbeensuccessfullyconfigured************Ifyouencounteraproblemwhilebuilding,pleaseopenan******issueonGitHub******andincludetheoutputfromthefollowingcommand:************perlconfigdata.pm--dump************(IfyouarenewtoOpenSSL,youmightwanttoconsultthe******'Troubleshooting'sectionintheINSTALLfilefirst)*******************************************************************************[root@iZwz98v1pircy9j9329rhrZopenssl-1.1.1w]#12345678910111213141516171819202122编译[root@iZwz98v1pircy9j9329rhrZopenssl-1.1.1w]#make1安装[root@iZwz98v1pircy9j9329rhrZopenssl-1.1.1w]#makeinstall1切换目录/usr/bin,备份原始的openssl[root@iZwz98v1pircy9j9329rhrZbin]#mvopensslopenssl.bak[root@iZwz98v1pircy9j9329rhrZbin]#pwd/usr/bin[root@iZwz98v1pircy9j9329rhrZbin]#ll|grepopenssl-rwxr-xr-x1rootroot555280Mar212023openssl.bak123456创建软连接,使执行openssl时使用新版本的openssl[root@iZwz98v1pircy9j9329rhrZbin]#ln-s/usr/local/openssl/bin/openssl/usr/bin/openssl[root@iZwz98v1pircy9j9329rhrZbin]#ll|grepopenssllrwxrwxrwx1rootroot30Apr418:52openssl->/usr/local/openssl/bin/openssl-rwxr-xr-x1rootroot555280Mar212023openssl.bak1234将安装路径添加到环境变量exportLD_LIBRARY_PATH=/usr/local/openssl/libLD_LIBRARY_PATH[root@iZwz98v1pircy9j9329rhrZ~]#pwd/root[root@iZwz98v1pircy9j9329rhrZ~]#cat.bashrc#.bashrc#Userspecificaliasesandfunctionsaliasrm='rm-i'aliascp='cp-i'aliasmv='mv-i'#Sourceglobaldefinitionsif[-f/etc/bashrc];then./etc/bashrcfiexportLD_LIBRARY_PATH=/usr/local/openssl/libLD_LIBRARY_PATH[root@iZwz98v1pircy9j9329rhrZ~]#123456789101112131415161718运行source.bashrc的目的是重新加载当前用户的.bashrc文件,以便应用其中所做的更改,而无需注销并重新登录。[root@iZwz98v1pircy9j9329rhrZ~]#source.bashrc1更新共享库的链接器缓存[root@iZwz98v1pircy9j9329rhrZ~]#ldconfig1检查是否安装成功[root@iZwz98v1pircy9j9329rhrZ~]#opensslversionOpenSSL1.1.1w11Sep202312安装python官网下载python最新版本,我选择3.12版本上传到服务器[root@iZwz98v1pircy9j9329rhrZ~]#lltotal1112736-rw-r--r--1rootroot1069373440Apr414:47mysql-8.3.0-1.el7.x86_64.rpm-bundle.tardrwxrwxr-x19rootroot4096Apr422:00openssl-1.1.1w-rw-r--r--1rootroot9893384Apr419:29openssl-1.1.1w.tar.gzdrwxrwxr-x21rootroot4096Apr420:29openssl-3.0.13-rw-r--r--1rootroot15294843Apr417:03openssl-3.0.13.tar.gzdrwxrwxr-x26rootroot4096Apr420:50openssl-3.2.1-rw-r--r--1rootroot17733249Apr414:23openssl-3.2.1.tar.gz-rw-r--r--1rootroot27116462Apr415:01Python-3.12.2.tgz12345678910解压[root@iZwz98v1pircy9j9329rhrZ~]#tar-zxvfPython-3.12.2.tgz1进入解压好的文件,执行配置文件,安装到/usr/local/python3.12[root@iZwz98v1pircy9j9329rhrZPython-3.12.2]#./configure--prefix=/usr/local/python3.12--with-openssl=/usr/local/openssl1编译[root@iZwz98v1pircy9j9329rhrZPython-3.12.2]#make1安装[root@iZwz98v1pircy9j9329rhrZPython-3.12.2]#makeinstall1检查是否安装成功[root@iZwz98v1pircy9j9329rhrZbin]#/usr/local/python3.12/bin/python3.12Python3.12.2(main,Apr42024,22:39:22)[GCC4.8.520150623(RedHat4.8.5-44)]onlinuxType"help","copyright","credits"or"license"formoreinformation.>>>importssl>>>>```123456
|
|