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 相关文章推荐
基于pandas数据样本行列选取的方法
Apr 20 Python
Python3按一定数据位数格式处理bin文件的方法
Jan 24 Python
Python日期时间Time模块实例详解
Apr 15 Python
python算法题 链表反转详解
Jul 02 Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 Python
Python any()函数的使用方法
Oct 28 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
Dec 25 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
基于Pyinstaller打包Python程序并压缩文件大小
May 28 Python
python如何查看网页代码
Jun 07 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
Jan 08 Python
解析python中的jsonpath 提取器
Jan 18 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
一个程序下载的管理程序(四)
2006/10/09 PHP
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
php 不同编码下的字符串长度区分
2009/09/26 PHP
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
jQuery formValidator表单验证插件开源了 含API帮助、源码、示例
2008/08/14 Javascript
Js组件的一些写法
2010/09/10 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
JS中的三个循环小结
2017/06/20 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
ionic3 懒加载
2017/08/16 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
python实现bucket排序算法实例分析
2015/05/04 Python
python使用mysql数据库示例代码
2017/05/21 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
英国标准协会商店:BSI Shop
2019/02/25 全球购物
Laura官网:加拿大女性的顶级时尚目的地
2019/09/20 全球购物
公司JAVA开发面试题
2015/04/02 面试题
幼儿园门卫制度
2014/01/29 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
机械专业技术员求职信
2014/06/14 职场文书
钳工实训报告总结
2014/11/04 职场文书
新生入学欢迎词
2015/01/26 职场文书
历史博物馆观后感
2015/06/05 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL