redhat/centos5.x安装python3.6

操作系统:Red Hat Enterprise Linux Server release 5.10

更新软件源

将源更新为清华源,详情参见:https://mirrors.tuna.tsinghua.edu.cn/help/centos/


安装、更新依赖

yum install -y gcc gcc44 zlib-devel python-setuptools readline-devel wget make perl

更新openssl 

# 下载并配置安装
wget --no-check-certificate https://www.openssl.org/source/openssl-1.0.2q.tar.gz
tar zxvf openssl-*
cd openssl-*
./config -fpic shared && make && make install

# 安装完成后替换掉旧ssl,旧版本为0.9.8,在python3中无法正常加载、使用
# 旧版本备份;创建新1.0.2版本的链接
mv /usr/bin/openssl /usr/bin/openssl.old
ln -s /usr/local/ssl/bin/openssl  /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl  /usr/include/openssl

# 将ssl链接库写入配置文件,ldconfig命令使之生效
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
ldconfig

注:openssl版本这里还选择1.0.x,使用过1.1.x安装失败因perl版本太低。rh5.x版本的perl最高为5.8.8,1.1.x版本最低perl版本需求为5.10.x 。对于perl的升级直接凌乱,折腾一下午决定不做,尽量少动其他依赖版本。因后续应用层还需要对perl有依赖,担心环境再不统一那就完蛋。


安装python

python使用3.6.1,rh5.x不可使用3.7版本,后续参见编译时的日志输出。

官网下载、解压Python

修改其中文件:Python/Modules/Setup.dist ,大概在201行,去掉下面几行注释

# Socket module helper for socket(2)
_socket socketmodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto

注:先记一下,后续的make altinstall后会报个警告,说_decimal模块安装失败,为了避免这个错误,需要使用gcc44进行编译安装,之前已安装了gcc44的依赖,此处安装前配置变量:

export CC=/usr/bin/gcc44

进入Python源码目录,配置、安装:

./configure --prefix=/opt/python3
make  altinstall

安装过程中会报错,忘记截图,后续再装时我注意截一下。大概意思为:Error: cannot found module  lssl  ;Error: cannot found module  lcrypto  即找不到ssl模块、找不到加密模块。创建新安装的openssl模块的软链接即可:

ln -s /usr/local/ssl/lib/libssl.so /usr/local/lib64/libssl.so
ln -s /usr/local/ssl/lib/libcrypto.so /usr/local/lib64/libcrypto.so

再执行python的make altinstall ,安装成功。

最后创建python3的软链接:

ln -s /opt/python3/bin/python3.6 /usr/local/bin/python3
ln -s /opt/python3/bin/pip3.6 /usr/local/bin/pip3 

终端敲一下python3,即进入python shell


更新pip3 ,更新为清华源:

pip3 install pip -U
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

猜你喜欢

转载自blog.csdn.net/delmonkey/article/details/85242657