Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
作者:wx912820 发布时间:2023-01-11 13:45:04
一、源码安装
首先安装开发工具包
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
来源:https://blog.csdn.net/wx912820/article/details/104668908


猜你喜欢
- tkinter的功能是如此强大,竟然还能做翻译软件。当然是在线的,我发现有一个quicktranslate模块,可以提供在线翻译功能,相当于
- 目录v-model.sync细微之处的区别总结功能作用场景:v-model <!--父组件--> &n
- 1. import_table介绍上期技术分享我们介绍了MySQL Load Data的4种常用的方法将文本数据导入到MySQL,这一期我们
- 为了构造透明的叠加层,需要准备两个图像:(1)原始图片;(2)要 “叠加”在第一个图像上的图像(包含某种级别的Alpha透明度)。透明叠加层
- 网站的改版和重新设计总是一件让人激动的事情,上到老板,下到设计师。更漂亮!更强大!更人性化……参与设计者一定有着无数为新版本骄傲的理由,然后
- 0. 学习目标我们已经知道算法是具有有限步骤的过程,其最终的目的是为了解决问题,而根据我们的经验,同一个问题的解决方法通常并非唯一。这就产生
- 调用pytorch内置的模型的方法import torchvisionmodel = torchvision.models.resnet50
- 安装部署Scrapy在安装Scrapy前首先需要确定的是已经安装好了Python(目前Scrapy支持Python2.5,Python2.6
- 日期包常用函数time.Now(): 获取当前时间package mainimport ( "fmt&q
- ROC曲线绘制要点(仅记录)1、ROC用于度量模型性能2、用于二分类问题,如若遇到多分类也以二分类的思想进行操作。3、二分类问题代码实现(至
- 前言我们在往期对matplotlib.pyplot()方法学习,到现在我们已经会绘制折线图、柱状图、散点等常规的图表啦(往期的内容如下,大家
- 今天,使用各种所见即所得工具制作主页已经是一件非常容易的事情了。但是了解HTML源代码和语法,无疑对我们制作主页有更大的帮助,也可以使用户能
- 基于Python中求和函数sum的用法详解今天在看《集体编程智慧》这本书的时候,看到一段Python代码,当时是百思不得其解,总觉得是书中排
- 一.简单介绍: functools模块用于高阶函数:作用于或返回其他函数的函数。一般而言,任何可调用对象都可以作为本模块用途的函数
- 看到论坛上有人模仿alert,自己也写了一个。本来想模仿winapi里的MessageBox ;但可惜js 不支持,阻塞模式。返回值只能用异
- 本文实例讲述了Python内存管理。分享给大家供大家参考,具体如下:a = 1a是引用,1是对象。Python缓存整数和短字符串,对象只有一
- 看代码吧~import gcfor x in list(locals().keys())[:]: del loca
- 训练keras时遇到了一个问题,就是内存不足,将 .fit 改成 .fit_generator以后还是放不下一张图(我的图片是8192×81
- 一、pytorch finetuning 自己的图片进行训练这种读取图片的方式用的是torch自带的 ImageFolder,读取的文件夹必
- 本文实例讲述了python和bash统计CPU利用率的方法。分享给大家供大家参考。具体如下:开始的时候写了一个 bash 的实现;因为最近也