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登录Dr.com思路以及代码分享
Jun 25 Python
Django实现自定义404,500页面教程
Mar 26 Python
Python3 socket同步通信简单示例
Jun 07 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
python实现对csv文件的列的内容读取
Jul 04 Python
opencv python 图像去噪的实现方法
Aug 31 Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
python实现最短路径的实例方法
Jul 19 Python
Python调用C/C++的方法解析
Aug 05 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 Python
OpenCV实现常见的四种图像几何变换
Apr 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
弄了个检测传输的参数是否为数字的Function
2006/12/06 PHP
php记录日志的实现代码
2011/08/08 PHP
PHPEXCEL 使用小记
2013/01/06 PHP
JavaScript URL参数读取改进版
2009/01/16 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
用js来获取上传的文件名纯粹是为了美化而用
2013/10/23 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
值得分享的Bootstrap Table使用教程
2016/11/23 Javascript
Vue.js结合bootstrap实现分页控件
2017/03/10 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
分享python数据统计的一些小技巧
2016/07/21 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
艺术用品:Arteza
2018/11/25 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
后勤工作职责
2013/12/22 职场文书
最新个人职业生涯规划书
2014/01/22 职场文书
《锄禾》教学反思
2014/04/08 职场文书
实验心得体会
2014/09/05 职场文书
商品陈列协议书
2014/09/29 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
自荐信模板大全
2015/03/27 职场文书
证婚人致辞精选
2015/07/28 职场文书
二胎满月酒致辞
2015/07/29 职场文书