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 ...
随机推荐
- TreeView的性能问题
最近在帮同事调试一个类似资源管理器的wpf界面,左边TreeView去遍历大目录时UI卡死,刚开始我以为是在UI线程中调用系统API遍历目录的原因,就改为后台遍历,但是没有效果. 根本原因: Tree ...
- C# 常用文件操作
public class IoHelper { /// <summary> /// 判断文件是否存在 /// </summary> /// <param name=&qu ...
- GWT更改元素样式属性
GWT有时候不像普通网页那样可以自由的添加CSS改变样式,所幸gwt提供了一些底层的方法,通过这些方法来实现DOM操作等.通过gwt部件的getElement()可以取得dom上的元素,这时就能对该元 ...
- maven配置的问题,maven的环境变量配置
不要在用户变量处配置用户变量,直接将maven的bin文件夹路径配置到path环境变量
- 有关UCOS_II在LPC1768上的应用
https://www.cnblogs.com/chungshu/archive/2012/12/14/2818380.html
- FileStream 常用的属性和方法
FileStream常用的属性和方法 (转) 对流进行操作时要引用 using System.IO; 命名空间 FileStream常用的属性和方法: 属性: CanRead 判断当前流是否支持读取, ...
- [转]浅谈javascript函数劫持
转自:Ph4nt0m Security Team 这么多年了,现在学习依然还是有很多收货,向前辈致敬.转载一方面是自己存档一份,另一方面是让更多喜欢安全的人一同学习. ================ ...
- pyodbc连接MySQL数据库
1:Python安装pyodbc:pip install pyodbc 2:安装unixODBC-2.3.4.tar.gz ./configure make make install 3:下载基于py ...
- DAY17-认证系统
COOKIE 与 SESSION 概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie ...
- DAY11-MYSQL补充之SQL逻辑查询语句执行顺序
一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...