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解析html开发库pyquery使用方法
Feb 07 Python
Python AES加密实例解析
Jan 18 Python
Django项目中用JS实现加载子页面并传值的方法
May 28 Python
python数据结构之线性表的顺序存储结构
Sep 28 Python
python opencv摄像头的简单应用
Jun 06 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
python系列 文件操作的代码
Oct 06 Python
pandas按行按列遍历Dataframe的几种方式
Oct 23 Python
Python autoescape标签用法解析
Jan 17 Python
python给图像加上mask,并提取mask区域实例
Jan 19 Python
python对Excel的读取的示例代码
Feb 14 Python
Django form表单与请求的生命周期步骤详解
Jun 07 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
vue组件tabbar使用方法详解
2018/11/06 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
初步讲解Python中的元组概念
2015/05/21 Python
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
Python3 读取Word文件方式
2020/02/13 Python
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
幼儿园教师辞职信
2014/01/18 职场文书
《风筝》教学反思
2014/04/10 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
房地产活动策划方案
2014/05/14 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
2015年外联部工作总结
2015/04/03 职场文书
2015年导购员工作总结
2015/04/25 职场文书
2019思想汇报范文
2019/05/21 职场文书
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
「Manga Time Kirara MAX」2022年5月号封面公开
2022/03/21 日漫
Redis Lua脚本实现ip限流示例
2022/07/15 Redis