Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程


Posted in Python onMarch 07, 2020

一、源码安装

首先安装开发工具包

yum groupinstall -y "Development tools"

安装依赖软件包

yum -y install gcc gcc-c++ zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel wget

上Python 官网 找源码包的下载地址

wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz -O /usr/local/Python-3.7.6.tar.xz

解压安装

tar -xf Python-3.7.6.tar.xz

cd Python-3.7.6

进入目录后,执行下面的命令

修改文件 Python-3.7.6/Modules/Setup.dist, 去掉如下几行的注释

readline readline.c -lreadline -ltermcap

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

开始编译安装

./configure --enable-shared

make -j 2 && make install
# -j 当前主机的 cpu 核心数

?enable-shared 指定安装共享库,共享库在使用其他需调用python的软件时会用到,比如使用mod_wgsi 连接Apache与python时需要。

配置共享库文件

为所有用户设置共享库目录
用 vi 编辑器打开配置文件 /etc/profile.d/python3_lib.sh (原来没有 重新生成的 名字可以自定义,必须以.sh 结尾)

vi /etc/profile.d/python3_lib.sh 添加如下内容
# python3.7 共享库目录
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

编辑文件 /etc/ld.so.conf.d/python3.conf,并且添加如下内容:

/usr/local/lib

保存退出文件后, 执行如下命令 加载配置信息使其生效

ldconfig

执行如下命令,是环境变量生效

source /etc/profile
# 此条命令只能让当前的 shell 环境下的环境变量生效,最好重启机器

测试python3

$ python3
Python 3.7.6 (default, Dec 25 2019, 03:22:21)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

测试 pip3

![假如上面显示的含有 python3.7 就没问题了

二、 配置使用本地的源安装第三方模块

阿里云的服务器不用如下配置 执行好上面就可以了 他会自动配置的
创建配置文件
配置 pip3 使用本地源

mkdir ~/.pip
vi ~/.pip/pip.conf

写入如下内容:

[global]

index-url=http://mirrors.aliyun.com/pypi/simple/

豆瓣源: https://pypi.douban.com/simple/
阿里源: https://mirrors.aliyun.com/pypi/simple
然后我们执行如下代码安装软件 如果可以那就没有问题

pip3 install ipython

shell 脚本自动安装Python3

yum groupinstall -y "Development tools"
#开发工具包
touch /mnt/inst_pyth.log
positio_pyth=/mnt/inst_pyth.log
echo "开始安装依赖包-----"
yum -y install gcc gcc-c++ zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel wget tar >> $positio_pyth
#依赖包
rpm -q gcc gcc-c++ zlib-devel bzip2-devel openssl-devel sqlite-devel readline-devel libffi-devel wget tar
 >> $positio_pyth
if [ $? -ne 0 ];then
 exit
fi
echo "开始下载python安装包,请耐心等待------"
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz -O /usr/local/Python-3.7.6.tar.xz
#下载安装包
if [ $? -ne 0 ];then
 exit
fi
cd /usr/local/
tar xf Python-3.7.6.tar.xz >> $positio_pyth
cd Python-3.7.6
sed -ri 's/^#(readline)/\1/' /usr/local/Python-3.7.6/Modules/Setup.dist
sed -ri 's/^#(SSL=)/\1/' /usr/local/Python-3.7.6/Modules/Setup.dist
sed -ri 's/^#(_ssl)/\1/' /usr/local/Python-3.7.6/Modules/Setup.dist
sed -ri 's/^#([ \t]*-DUSE)/\1/' /usr/local/Python-3.7.6/Modules/Setup.dist
sed -ri 's/^#([ \t]*-L\$\(SSL\))/\1/' /usr/local/Python-3.7.6/Modules/Setup.dist
# 到配置文件里打开这几行的注释
./configure --enable-sharde
a=`cat /proc/cpuinfo|awk '/cpu cores/ {print $NF}'`
make -j $a && make install >> $positio_pyth
#j 指定cpu核数
touch /etc/profile.d/python3_lib.sh
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib" > /etc/profile.d/python3_lib.sh
touch /etc/ld.so.conf.d/python3.conf
echo "/usr/local/lib" > /etc/ld.so.conf.d/python3.conf
ldconfig
#使添加的内容生效
source /etc/profile
#生效环境变量
pip3 -V
if [ $? -eq 0 ];then
 echo "安装成功"
else
 echo "安装失败"
fi

到此这篇关于Centos7下源码安装Python3 shell 脚本自动安装Python3的文章就介绍到这了,更多相关Centos7安装Python3 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中多线程及程序锁浅析
Jan 21 Python
python 类详解及简单实例
Mar 24 Python
python实现求最长回文子串长度
Jan 22 Python
Django中间件实现拦截器的方法
Jun 01 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
在linux下实现 python 监控usb设备信号
Jul 03 Python
Flask框架模板继承实现方法分析
Jul 31 Python
python TK库简单应用(实时显示子进程输出)
Oct 29 Python
Python numpy多维数组实现原理详解
Mar 10 Python
python 匿名函数与三元运算学习笔记
Oct 23 Python
python 带时区的日期格式化操作
Oct 23 Python
如何用Python进行时间序列分解和预测
Mar 01 Python
Django接收照片储存文件的实例代码
Mar 07 #Python
Python实现对adb命令封装
Mar 06 #Python
对Python中 \r, \n, \r\n的彻底理解
Mar 06 #Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
Mar 06 #Python
mac在matplotlib中显示中文的操作方法
Mar 06 #Python
python数据类型可变不可变知识点总结
Mar 06 #Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 #Python
You might like
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
PHP7新特性
2021/03/09 PHP
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
python改变日志(logging)存放位置的示例
2014/03/27 Python
python获取从命令行输入数字的方法
2015/04/29 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
网络体系结构及协议的定义
2014/03/13 面试题
学生党员思想汇报
2013/12/28 职场文书
人事专员岗位说明书
2014/07/29 职场文书
2015年宣传工作总结
2015/04/08 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
质量承诺书格式范文
2015/04/28 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
多表查询、事务、DCL
2021/04/05 MySQL
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js