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的pyxmpp2中的主循环使其提高性能
Apr 24 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
python3实现windows下同名进程监控
Jun 21 Python
python实现反转部分单向链表
Sep 27 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
在python中将字符串转为json对象并取值的方法
Dec 31 Python
Django使用unittest模块进行单元测试过程解析
Aug 02 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 Python
Django 允许局域网中的机器访问你的主机操作
May 13 Python
python实现简单的tcp 文件下载
Sep 16 Python
基于PyInstaller各参数的含义说明
Mar 04 Python
python编写函数注意事项总结
Mar 29 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
用PHP实现图象锐化代码
2007/06/14 PHP
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
解析php类的注册与自动加载
2013/07/05 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
python通过文件头判断文件类型
2015/10/30 Python
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
大学生活自我评价
2014/04/09 职场文书
公民授权委托书
2014/10/15 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
2014年涉外离婚协议书范本
2014/11/20 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
Go获取两个时区的时间差
2022/04/20 Golang