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使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 Python
在MAC上搭建python数据分析开发环境
Jan 26 Python
python 写的一个爬虫程序源码
Feb 28 Python
Python爬取十篇新闻统计TF-IDF
Jan 03 Python
深入浅析Python传值与传址
Jul 10 Python
Python适配器模式代码实现解析
Aug 02 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
Aug 30 Python
python实现统计代码行数的小工具
Sep 19 Python
Python多重继承之菱形继承的实例详解
Feb 12 Python
如何利用python发送邮件
Sep 26 Python
10张动图学会python循环与递归问题
Feb 06 Python
Python OpenCV形态学运算示例详解
Apr 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
php中使用__autoload()自动加载未定义类的实现代码
2013/02/06 PHP
php字符串分割函数explode的实例代码
2013/02/07 PHP
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
php数组键值用法实例分析
2015/02/27 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
Prototype Date对象 学习
2009/07/12 Javascript
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
python 远程统计文件代码分享
2015/05/14 Python
详解python中字典的循环遍历的两种方式
2017/02/07 Python
Flask框架配置与调试操作示例
2018/07/23 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
车间班组长岗位职责
2013/11/13 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
2015元旦标语横幅
2014/12/09 职场文书
先进基层党组织材料
2014/12/25 职场文书