CENTOS 7 升级安装 Python 3.5

本文采取源码的方式安装 Python 3.5.2,如果是其它版本会有或多或少的差异,且写这篇的时候官网最新的是 Python 3.7,个人使用 3.5 就足够了,没必要更新到最新,否则出现未知 BUG 你都不知道该找谁!
特别说明,本文安装之后系统的默认 Python 版本将变成 3.5.2,但是这并不影响本身 2.7 的使用!
文章最后附带了 CENTOS 7 升级 Python 3 的一键安装脚本!
|
服务
|
版本
|
|
操作系统
|
CentOS Linux release 7.5.1804
|
|
远程工具
|
Xshell 5
|
|
Python
|
3.5.2
|
【1】Python 下载地址:
https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz
【2】安装常见依赖包:
yum -y install zlib-devel bzip2-devel wget openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
【3】上传源码包到 /usr/local/src 并解压:
cd /usr/local/src/ # 解压
xz -d Python-3.5.2.tar.xz
tar -xf Python-3.5.2.tar
【4】编译安装:
# 编译安装
cd Python-3.5.2
./configure --prefix=/usr/local/python35 --enable-shared CFLAGS=-fPIC
make && make install
【5】添加环境变量:
# 添加环境变量
echo 'export PATH=$PATH:/usr/local/python35/bin' >>/etc/profile
【6】添加新的 Python 命令指向:
# 修改系统默认的 Python 2.7
rm -f /usr/bin/python
ln -s /usr/local/python35/bin/python3 /usr/bin/python
ln -s /usr/local/python35/bin/pip3.5 /usr/bin/pip
【7】修改库依赖,避免使用报错:
ldd /usr/local/python35/bin/python3
如图:

备注:可以看到这里有一个 not found,解决办法如下:
cp /usr/local/python35/lib/libpython3.5m.so.1.0 /lib64/
再度查看:

【8】生效环境变量:
source /etc/profile
【9】修改 yum 配置:如果不修改,yum 将无法使用!
# 修改 yum
sed -i "s#/usr/bin/python#/usr/bin/python2.7#g" /usr/bin/yum
sed -i "s#/usr/bin/python#/usr/bin/python2.7#g" /usr/libexec/urlgrabber-ext-down
【10】查看升级结果:

【11】配置 pip:
# 升级 PIP 和安装 virtualenv
pip install --upgrade pip
pip install virtualenv
【12】CENTOS 7 Python 3 升级完成!
#!/bin/bash ###################################################################
# author: Dylan
# useage: Update Python 3.5
################################################################### ###################################################################
# 输出颜色定义
###################################################################
Color_Text() {
echo -e " \e[0;$2m$1\e[0m"
} Echo_Red() {
echo $(Color_Text "$1" "")
} Echo_Green() {
echo $(Color_Text "$1" "")
} Echo_Yellow() {
echo $(Color_Text "$1" "")
} ###################################################################
# 变量定义
###################################################################
# Python 版本
Python_Version='3.5.2' # Python 安装包
Python_Package="Python-${Python_Version}" # Python 下载地址
Python_Url="https://www.python.org/ftp/python/${Python_Version}/${Python_Package}.tar.xz" # 下载路径
Download_Path='/usr/local/src' # 安装路径
Install_Path='/usr/local/python35' ###################################################################
# 网络检查函数
###################################################################
NETWORK_CHECK() {
ping www.baidu.com -c 3
if [ $? != 0 ];then
Echo_Red "该服务器无法连网,请配置服务器网络!"
exit 1
fi
} ###################################################################
# 升级 Python 函数
###################################################################
PYTHON_UPDATE() { # 检查网络
NETWORK_CHECK # 安装依赖
Echo_Yellow "==========================================================================="
Echo_Green '安装依赖:'
Echo_Yellow "==========================================================================="
yum -y install zlib-devel bzip2-devel wget openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make # 检查 Python 版本
Echo_Yellow "==========================================================================="
Echo_Green '当前版本 Python:'
Echo_Yellow "==========================================================================="
/usr/bin/python -V
Echo_Yellow "===========================================================================" # 选择确认
read -p "是否继续升级 Python [y/n]:" Chose_Number
case ${Chose_Number} in
[yY][eE][sS]|[yY])
Echo_Yellow "你选择的是yes,升级继续进行..."
;;
[nN][oO]|[nN])
Echo_Yellow "你选择的是yes,升级即将终止..."
exit
;;
*)
Echo_Red "输入错误,即将退出升级..."
exit
esac # 下载安装包
Echo_Yellow "==========================================================================="
Echo_Green "开始从网上下载 ${Python_Package}..."
Echo_Yellow "==========================================================================="
cd ${Download_Path}
wget ${Python_Url}
if [ $? != 0 ];then
Echo_Red "网上下载 ${Python_Package} 失败,请检查!"
exit 1
fi Echo_Yellow "==========================================================================="
Echo_Green "${Python_Package} 下载成功,即将开始升级..."
Echo_Yellow "==========================================================================="
Echo_Green "开始解压 Python ..."
Echo_Yellow "==========================================================================="
xz -d ${Python_Package}.tar.xz && tar -xf ${Python_Package}.tar
if [ $? != 0 ];then
Echo_Red "${Python_Package} 解压失败,请检查!"
exit 1
fi cd ${Python_Package}
Echo_Yellow "==========================================================================="
Echo_Green "开始安装 Python ..."
Echo_Yellow "==========================================================================="
./configure --prefix=${Install_Path} --enable-shared CFLAGS=-fPIC
make -j 4 && make install
if [ $? != 0 ];then
Echo_Red "${Python_Package} 编译失败,请检查!"
exit 1
fi # 配置环境变量
Echo_Yellow "==========================================================================="
Echo_Green "修改环境变量 ..."
Echo_Yellow "==========================================================================="
echo "export PATH=\$PATH:${Install_Path}/bin" >>/etc/profile # 修改原有的 Python 为新的
Echo_Yellow "==========================================================================="
Echo_Green "替换旧版 Python ..."
Echo_Yellow "==========================================================================="
mv /usr/bin/python /tmp
ln -s ${Install_Path}/bin/python3 /usr/bin/python
ln -s ${Install_Path}/bin/pip3.5 /usr/bin/pip # 修改库文件
Echo_Yellow "==========================================================================="
Echo_Green "修改 Python 库文件 ..."
Echo_Yellow "==========================================================================="
ldd ${Install_Path}/bin/python3
cp ${Install_Path}/lib/libpython3.5m.so.1.0 /lib64/ # 修改 yum 配置
Echo_Yellow "==========================================================================="
Echo_Green "修改 yum ..."
Echo_Yellow "==========================================================================="
sed -i "s#/usr/bin/python#/usr/bin/python2.7#g" /usr/bin/yum
sed -i "s#/usr/bin/python#/usr/bin/python2.7#g" /usr/libexec/urlgrabber-ext-down # 使配置生效
source /etc/profile
. /etc/profile # 升级 PIP
Echo_Yellow "==========================================================================="
Echo_Green "升级 PIP ..."
Echo_Yellow "==========================================================================="
pip install --upgrade pip
pip install virtualenv # 查看升级后版本
Echo_Green '当前版本 Python(请手动执行:source /etc/profile):'
Echo_Yellow "==========================================================================="
/usr/bin/python -V
Echo_Yellow "==========================================================================="
} ###################################################################
# 开始升级 Python
###################################################################
Echo_Yellow "==========================================================================="
Echo_Green '作者:Dylan'
Echo_Green '备注:QQ:1214966109'
Echo_Yellow "==========================================================================="
sleep 2
PYTHON_UPDATE
我个人是一直在用这种安装方式升级 Python,多环境推荐使用 virtualenv,如果你安装有问题,也可以通过上我博客首页的 QQ 与我取得联系,让我对这篇进行完善。
CENTOS 7 升级安装 Python 3.5的更多相关文章
- Linux CentOS 编绎安装Python 3.5
Linux CentOS 编绎安装Python 3.5 先决条件(若无安装,则不能编绎使用idle3):yum install tk-devel xz -d Python-3.5.0.tar.xzta ...
- CentOS 6 下安装Python 3
可以下载各个版本的python:https://www.python.org/ftp/python/ 配置安装 下载最新的安装包(截止2013/11/05),还是3.3.2版本. #wget http ...
- 如何在 CentOS 7 上安装 Python 3
当前最新的 CentOS 7.5 默认安装的是 Python 2.7.5,并且默认的官方 yum 源中不提供 Python 3 的安装包.这里主要介绍两种在 CentOS 7 中安装 Python 3 ...
- c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具
c#实例化继承类,必须对被继承类的程序集做引用 0x00 问题 类型“Model.NewModel”在未被引用的程序集中定义.必须添加对程序集“Model, Version=1.0.0.0, Cu ...
- CentOS下编译安装python包管理安装工具pip教程
ubuntu 安装pip 代码如下: apt-get install python-pip 安装requests, pip install requests 对于centos的,直接 yum inst ...
- centos 7下安装python 3.6笔记
每次在centos上安装python 3都需要重新查资料,这次索性自己记下笔记. 首先安装gcc yum -y install gccyum install zlib-devel./configure ...
- 在centos上面编译安装python
前言 因为在学习storm的过程中需要安装python,storm是部署在linux上面的,所以需要将python安装在linux上面. 安装准备 python下载 官网链接:https://www. ...
- 【原创】Centos 7 升级安装python3.7.4
1.安装必须的软件 #更新源中包列表 yum -y update #先安装扩展源EPEL 才能安装pip 否则会报错 yum -y install epel-release //解决ssl问题,否则报 ...
- CentOS 6.5 安装Python 3.5
1.CentOS6.5 安装Python 的依赖包 yum groupinstall "Development tools" yum install zlib-devel bzip ...
随机推荐
- Nginx解决错误413 Request Entity Too Large
最近一个项目当中,要求上传图片,并且限制图片大小,虽然在laravel当中已经添加了相关的表单验证来阻止文件过大的上传,然而当提交表单时,还没轮到laravel处理,nginx就先报错了.当你仔细看报 ...
- PCIe相关的操作命令
1.lspci --显示列举系统目前的pcie设备 43:00.0 Class 0004: Device 104c:b800 (rev 01) //netra设备 设备编号 ...
- WCF svcutil工具
通过SvcUtil.exe生成客户端代码和配置 WCF服务调用通过两种常用的方式:一种是借助代码生成工具SvcUtil.exe或者添加服务引用的方式,一种是通过ChannelFactory直接创建服务 ...
- 查看,创建,删除,映射rbd镜像
标签(空格分隔): ceph,ceph实验,pg 1. 创建镜像: [root@node3 ~]# rbd create testpool/foo --size 1024 2. 查看镜像信息: [ro ...
- paramiko远程执行命令成功
- 网页弹出框ClientScript,ScriptManager
网页调用客户端弹出框 this.ClientScript.RegisterStartupScript(this.GetType(), "message", "<sc ...
- oracle常用函数总结(一)
最近在读数据库存储过程,或者在xml里写sql时用到数据库函数,笔者觉得有必要总结一下,当然有的函数笔者也很懵逼,不过可以问度娘啊!好了!开始正题. )s from dual;--1 若nvl第一个参 ...
- TextView中ellipsize属性
TextView中可以设置一个ellipsize属性,作用是当文字长度超过textview宽度时的显示方式: 例如,"encyclopedia"显示, 只是举例,以实际显示为准:) ...
- [hdu3949]XOR(线性基求xor第k小)
题目大意:求xor所有值的第k小,线性基模板题. #include<cstdio> #include<cstring> #include<algorithm> #i ...
- ASCII / Unicode / UTF-8 / GBK
1 ASCII ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现 ...