centos7 python2.7升级python3.6

本文详细介绍了在CentOS7.2环境中将Python升级至3.6版本的具体步骤及过程中遇到的问题解决方法,包括安装Python3.6、解决zlib库和SSL问题、安装pip3等。

今天在CentOS7.2上将python2.7升级至python3.6时遇到了诸多问题,下面将升级步骤以及解决方法一一列举。

1.安装Python3.6

安装准备,这里应该切换到超级用户。

mkdir /usr/local/python3
wget --no-check-certificate https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar -xzvf Python-3.6.0.tgz
cd Python-3.6.0

在编译安装之前,需要注意一些事项,下面这些注意问题是我在安装以后,或者是安装完pip3以后遇到的问题,在这里提前告诉大家。

使用zlib库出错:

zipimport.ZipImportError: can't decompress data; zlib not available
Makefile:1079: recipe for target 'install' failed
make: *** [install] Error 1

问题分析

从错误信息分析,就是缺少了zlib的解压缩类库,安装即可

yum -y install zlib*

后面再安装完pip3以后,又碰到了ssl问题。

问题描述:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 

Collecting xxx 

解决办法:

①查看openssl安装包,发现缺少openssl-devel包 
[root@localhost ~]# rpm -aq|grep openssl 
openssl-0.9.8e-20.el5 

openssl-0.9.8e-20.el5 

②yum安装openssl-devel 

[root@localhost ~]# yum install openssl-devel -y 
查看安装结果 
[root@localhost ~]# rpm -aq|grep openssl 
openssl-0.9.8e-26.el5_9.1 
openssl-0.9.8e-26.el5_9.1 
openssl-devel-0.9.8e-26.el5_9.1 

openssl-devel-0.9.8e-26.el5_9.1

③修改python3里面的Setup文件

vi /path/to/Python-3.6.0/Modules/Setu

修改成下面:

 #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                               #把这段代码 前面的#去掉

完成上面两个任务以后,我们开始编译安装python3.

编译安装

./configure --prefix=/usr/local/python3
make && make install

将默认Python修改为Python3.6,并为其创建软连接

mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/python3/bin/python3 /usr/bin/python


修改yum使用的原python的配置文件

vim /usr/bin/yum
#!/usr/bin/python --> #!/usr/bin/python2.7
vim /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python --> #!/usr/bin/python2.7
因为yum不支持python3,所以需要把yum代码中的python 替换成 python2.7

2.安装pip3

安装pip依赖库

yum -y install zlib zlib-devel

如果安装上述依赖库出现以下报错:Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
请执行以下操作:yum provides '*/applydeltarpm',出现上述问题的原因是缺少增量RPM条件,需要使用上述命令插叙具体缺少的套件名称,并进行安装。

安装setuptools

Python的包管理工具,安装其他模块依赖此模块支持。

wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python3 setup.py build
python3 setup.py install

安装pip,并为其创建软连接

wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zvxf 9.0.1 -C pip-9.0.1
cd pip-9.0.1
python3 setup.py install
ln -s /usr/local/python3/bin/pip /usr/bin/pip3

升级pip

pip3 install --upgrade pip


说明:此篇文章是自己在安装python3时使用的方法,已经遇到的一些问题。本文属于粘贴复制过来的,由于出处很多,就不在这里提供原文链接。






### 升级 Python 的准备工作 在 CentOS 7 上将 Python3.6 版本升级3.7 需要遵循一系列操作步骤来确保系统的稳定性和兼容性。由于系统自带的 Python 是许多核心服务依赖的基础环境,因此不建议直接覆盖原有的 Python 解释器。 --- #### 安装必要的开发工具和依赖项 为了成功编译并安装新的 Python 版本,需要先安装一些基础开发工具和库文件: ```bash sudo yum groupinstall "Development Tools" -y sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget -y ``` 上述命令会安装 GCC 编译器以及 OpenSSL 和其他必要库的支持[^2]。 --- #### 下载 Python 3.7 源码 通过官方渠道获取最新发布的 Python 3.7 源代码包,并解压该压缩文件: ```bash cd /usr/src sudo wget https://www.python.org/ftp/python/3.7.13/Python-3.7.13.tgz sudo tar xzf Python-3.7.13.tgz ``` 这里假设下载的是 `Python-3.7.13` 版本,请根据实际需求调整 URL 地址。 --- #### 编译与安装 Python 3.7 进入源代码目录后执行配置脚本来指定安装路径和其他选项: ```bash cd Python-3.7.13 ./configure --enable-optimizations --with-ensurepip=install make altinstall ``` 注意:使用 `altinstall` 而不是普通的 `install` 命令是为了防止新版本替换掉现有的 `/usr/bin/python` 符号链接。 --- #### 测试新版本是否正常工作 完成以上步骤之后可以通过以下方式验证刚安装好的解释器功能是否完好无损: ```bash python3.7 --version ``` 如果显示正确的版本号,则说明一切顺利[^1]。 --- #### 设置默认 Python 版本 (可选) 虽然推荐保留原始系统 Python 不变,但如果确实有必要更改全局默认值,可以利用 update-alternatives 工具实现切换: ```bash sudo alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.7 1 sudo alternatives --config python3 ``` 按照提示选择对应的序号即可生效。 --- #### 管理 pip 并更新其至最新状态 最后一步就是初始化 Pip 包管理器并将它升至当前可用最高版次: ```bash sudo python3.7 -m ensurepip sudo python3.7 -m pip install --upgrade pip setuptools wheel ``` 这样就完成了整个流程中的最后一环。 --- ### 总结 综上所述,在 CentOS 7 中安全地把 Python 提高到较新版需经历准备阶段、正式构建过程还有后期维护三个主要部分。务必小心处理好每一个细节以免影响日常业务运行状况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值