CentOS7.5升级python至3.7.1版本,同时安装SSL模块

3 篇文章 0 订阅
2 篇文章 0 订阅

1.创建临时目录,存储安装时需要用的过程文件

[root@localhost ~]# cd /usr
[root@localhost usr]# mkdir tools
[root@localhost usr]# cd tools

2.先行安装python所依赖的模块(重要,必须执行)

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite sqlite-devel readline-devel tk tk-devel gdbm gdbm-devel db4-devel libpcap-devel lzma xz xz-devel libuuid-devel libffi-devel

3.下载python3.7.1,并且进行编译安装:

[root@localhost tools]# wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
文件解压:
[root@localhost tools]# tar xvf Python-3.7.1.tar.xz
进入解压目录
[root@localhost tools]# cd ./Python-3.7.1
创建编译安装目录并且进行配置:
[root@localhost Python-3.7.1]# mkdir /usr/local/python3
[root@localhost Python-3.7.1]# ./configure --prefix=/usr/local/python3
这一步有可能会提示
no acceptable C compiler found in $PATH
如果提示这个错误,则需要安装gcc
[root@localhost Python-3.7.1]# yum install make gcc gcc-c++
然后重新执行
[root@localhost Python-3.7.1]# ./configure --prefix=/usr/local/python3
进行安装:
[root@localhost Python-3.7.1]# make && make install
安装中可能遇到Fatal Python error: initfsencoding: Unable to get the locale encoding
LookupError: unknown encoding: GBK这种错误,需要先把系统的编码修改成utf8,再进行安装
[root@localhost Python-3.7.1]# export LANG=zh_CN.UTF-8
[root@localhost Python-3.7.1]# export LANGUAGE=zh_CN.UTF-8
重新安装python
[root@localhost zlib-1.2.11]# cd /usr/tools/Python-3.7.1
[root@localhost Python-3.7.1]# make && make install
再重新安装python3.7.1,完成

4.修改默认的python版本以及pip的软链

[root@localhost Python-3.7.1]# mv /usr/bin/python /usr/bin/python_old
软连接指向最新的python
[root@localhost Python-3.7.1]# ln -s /usr/local/python3/bin/python3 /usr/bin/python
pip也指向最新的软链
[root@localhost Python-3.7.1]#ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
用python命令查看版本:
[root@localhost Python-3.7.1]# python

5.解决yum升级后不可用的问题,再遇到类似的python报错,都可以使用该方法修改。

[root@localhost Python-3.7.1]# vi /usr/bin/yum
[root@localhost Python-3.7.1]# vi /usr/libexec/urlgrabber-ext-down
将文件中的
#!/usr/bin/python 改成: #!/usr/bin/python_old
指向旧的python

6.非必要-解决SSL import报错的问题。下载安装openssl的1.0.2版本(部分情况会出现该错误,如果import ssl没出现错误,往下可以忽略)ssl模块在pip命令时会使用到,pip现在都是基于https协议。升级openssl或者替换为 libressl,下面的教程可以通用

1、下载openssl
wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz
2、在文件夹下解压缩,得到openssl-1.0.2j文件夹
tar -xzf openssl-1.0.2j.tar.gz
3、进入解压的目录:
cd openssl-1.0.2j
4、设定Openssl 安装,( --prefix )参数为欲安装之目录,也就是安装后的档案会出现在该目录下:
./config --prefix=/usr/local/openssl
5、执行命令
./config -t
6.执行make,编译Openssl
make
7、安装
make install

7.修改python目录下的(注意是下载的python目录,不是安装后的)Modules/Setup.dist文件,搜索ssl,找到如下4行代码

取消注释,并且将SSL修改成自己的ssl安装目录,例如我的就是

SSL=/usr/local/openssl
_ssl _ssl.c \
	-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
	-L$(SSL)/lib -lssl -lcrypto

从第3步的python编译安装开始,重新编译并且安装python,安装结束后

最后验证:

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值