Centos 上安装python3

151 阅读2分钟
  1. openssl 3.0以上需要 IPC/Cmd.pm    

       https://blog.csdn.net/sd4493091/article/details/122220902

解决方法:

安装perl-CPAN

[root@centos7 ~]# yum install -y perl-CPAN
进入CPAN的shell模式,首次进入需要配置shell,按照提示操作即可(本人perl小白,全部选择默认配置,高手请根据提示自行选择)

[root@centos7 ~]# perl -MCPAN -e shell
在shell中安装缺少的模块

cpan[1]> install IPC/Cmd.pm

  1. 安装openssl 源码编译版本 wget  下载。最新的地址 www.openssl.org/source/ //发文的时候是3.0.2版本。www.openssl.org/source/open…

        ./config --prefix=/usr/local/bin/openssl

        make
sudo make install

    查看版本 /usr/local/bin/openssl/bin/openssl version 失败

ldd 查看依赖 ldd openssl
linux-vdso.so.1 => (0x00007ffed1d28000)
libssl.so.3 => not found
libcrypto.so.3 => not found
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fc1f4ca3000)
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fc1f4a87000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007fc1f46b9000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc1f4ea7000)

发现少了两个so。

       复制两个so

       cp ../lib64/libssl.so /usr/lib64/libssl.so.3

       cp ../lib64/libcrypto.so /usr/lib64/libcrypto.so.3

       ldd openssl
linux-vdso.so.1 => (0x00007ffff0d6a000)
libssl.so.3 => /usr/lib64/libssl.so.3 (0x00007fbd06808000)
libcrypto.so.3 => /usr/lib64/libcrypto.so.3 (0x00007fbd06198000)
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fbd05f94000)
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fbd05d78000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007fbd059aa000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbd06aac000)

so存在以后查看版本 /usr/local/bin/openssl/bin/openssl version OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

  1. 安装Python3

(1)、下载Python3

wget www.python.org/ftp/python/…
wget会将文件下载到当前目录下,所以下载前选好目录。

(2)、下载完成后,解压

tar -xvzf Python-3.10.4.tgz
(3)、解压完成后,切换到Python3文件夹中

cd ./Python-3.6.4

(4)、使用ssl

编辑 vi Modules/Setup

取消下面注释

#OPENSSL=/usr/local/bin/openssl
#_ssl _ssl.c \ #-I(OPENSSL)/includeL(OPENSSL)/include -L(OPENSSL)/lib \ #-lssl -lcrypto
#_hashlib _hashopenssl.c \ #-I(OPENSSL)/includeL(OPENSSL)/include -L(OPENSSL)/lib \ #-lcrypto

修改地址和64位

 OPENSSL=/usr/local/bin/openssl
_ssl _ssl.c \ -I(OPENSSL)/includeI(OPENSSL)/include -I(OPENSSL)/include/openssl -L(OPENSSL)/lib64lssllcrypto hashlibhashopenssl.cI(OPENSSL)/lib64 \\ -lssl -lcrypto\ _hashlib _hashopenssl.c \\ -I(OPENSSL)/include -I(OPENSSL)/include/opensslL(OPENSSL)/include/openssl -L(OPENSSL)/lib64 \ -lcrypto


(5)、执行

./configure --with-openssl=/usr/local/bin/openssl

make
sudo make install
(6)、输入Python3验证

python3 --version

(7)、输入ssl验证

python3

import ssl 

无异常就正常了