python安装与配置:在centos上使用shell脚本一键安装

介绍

Python是一种功能强大且广泛使用的编程语言,但在某些情况下,您可能需要安装和配置特定版本的Python。本教程将向您展示如何使用一个Shell脚本自动完成这个过程,以便您可以快速开始使用Python 3。

使用shell自动化安装教程

1. 复制脚本

首先,将以下脚本内容复制并保存为/tmp/install_python3.sh文件。

#!/bin/bashinstallDir="/opt/module/python"
# 可以修改为自己想安装的版本
version="3.8.1"if [ ! -d "${installDir}" ]; thensudo mkdir -p "${installDir}"if [ $? -eq 0 ]; thenecho "安装目录${installDir}已创建"elseecho "请确保您有足够的权限来创建目录,请增加权限后再次执行"exit 1fi
fi
# 下载python安装所需的工具和库
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel
if [ $? -eq 0 ]; thenecho "python安装所需的工具和库下载成功"
elseecho "python安装所需的工具和库下载失败,请查看异常信息后重试"exit 1
fi
if [ ! -f /tmp/Python-$version.tgz ]; thenwget https://www.python.org/ftp/python/$version/Python-$version.tgz -P /tmpif [ $? -eq 0 ]; thenecho "/tmp/Python-$version.tgz下载成功"elseecho "/tmp/Python-$version.tgz下载失败,请重试或手动下载到/tmp目录下再次执行"echo "下载地址:https://www.python.org/ftp/python/$version/Python-$version.tgz"exit 1fi
fi
if [ -d $installDir/Python-$version ]; thenecho "$installDir/Python-$version 已存在,正在删除"sudo rm -rf $installDir/Python-$version
fi
tar -zxvf /tmp/Python-$version.tgz -C $installDir
if [ $? -eq 0 ]; thenecho "/tmp/Python-$version.tgz解压成功"
elseecho "/tmp/Python-$version.tgz解压失败,请查看异常信息后重试"exit 1
ficd $installDir/Python-$version
# 配置Python编译和安装过程的参数
#./configure --enable-optimizations
$installDir/Python-"$version"/configure
if [ $? -eq 0 ]; thenecho "配置Python编译和安装过程的参数成功"
elseecho "配置Python编译和安装过程的参数失败,请查看异常信息后重试"exit 1
fi
# 自动化构建和编译python
make -j 2
if [ $? -eq 0 ]; thenecho "自动化构建和编译python成功"
elseecho "自动化构建和编译python失败,请查看异常信息后重试"exit 1
fi
#使用altinstall而不是install可以避免覆盖系统默认的Python 2.x版本。
sudo make altinstall
if [ $? -eq 0 ]; thenecho "altinstall成功"
elseecho "altinstall失败,请查看异常信息后重试"exit 1
fi
# 修改Python3作为默认版本,使用update-alternatives命令添加Python 3的符号链接
sudo update-alternatives --install $(which python) python $(which python${version:0:3}) 1
if [ $? -eq 0 ]; thenecho "修改Python3作为默认版本成功"
elseecho "修改Python3作为默认版本失败,请查看异常信息后重试"exit 1
fi
# 验证是否安装成功
if [[ $(python --version) == "Python $version" ]]; thenecho "python3下载、安装、配置成功"
fi
# 解决安装python3后使用不了yum问题
yum_file="/usr/bin/yum"
down_file="/usr/libexec/urlgrabber-ext-down"
if grep -q "#!/usr/bin/python2" "$yum_file"; thenecho "#!/usr/bin/python2已设置"
elif grep -q "#!/usr/bin/python" "$yum_file"; thensudo sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' "$yum_file"echo "#!/usr/bin/python2设置成功"
elseecho "在 $yum_file 中找不到Python解释器"
fi
if grep -q "#! /usr/bin/python2" "$down_file"; thenecho "#! /usr/bin/python2已设置"
elif grep -q "#! /usr/bin/python" "$down_file"; thensudo sed -i 's|#! /usr/bin/python|#! /usr/bin/python2|' "$down_file"echo "#!/usr/bin/python设置成功"
elseecho "在 $down_file中找不到Python解释器"
fi
# 安装pip
#sudo yum install python3-pip
# 更新pip,解决pip下载一些python包失败问题
python -m pip install --upgrade pipexit 0

2. 增加执行权限

在终端中执行以下命令,为脚本添加执行权限。

chmod a+x /tmp/install_python3.sh

3. 执行脚本

执行以下命令,运行脚本开始下载、安装和配置Python 3。

/tmp/install_python3.sh

请耐心等待,直到下载、安装和配置完成。执行过程中会显示相关信息。

成功如下图:

在这里插入图片描述

4. 更改默认python版本

如果您想设置为系统的python默认版本,可以执行以下命令:

sudo update-alternatives --config python

根据提示选择要设置为默认的Python版本。
在这里插入图片描述

5. 使用pip安装Python包

安装Python包时,可以使用以下命令:

python -m pip install package_name

将package_name替换为要安装的包的名称。

在使用 pip 命令时,可以通过以下几种方式指定国内镜像站:

临时指定:在执行 pip 命令时,使用 --index-url 或 -i 参数指定镜像站的 URL。例如:

python -m pip install --index-url https://pypi.tuna.tsinghua.edu.cn/simple/ package_name

python -m pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple/

永久指定:可以在 pip 的配置文件中永久指定镜像站。

编辑pip配置文件:

vim ~/.pip/pip.conf

vim /etc/pip.conf

在配置文件中添加以下内容,将镜像站的 URL 替换为想要使用的镜像站地址:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/

使用环境变量:可以设置 PIP_INDEX_URL 环境变量来指定镜像站地址:

export PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple/

echo >> ~/.bashrc
echo 'export PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple/' >> ~/.bashrc

以下是一些常用的 Python 镜像站:

阿里云 PyPI 镜像:https://mirrors.aliyun.com/pypi/simple/
清华大学 PyPI 镜像:https://pypi.tuna.tsinghua.edu.cn/simple/
豆瓣 PyPI 镜像:https://pypi.douban.com/simple/
网易 PyPI 镜像:https://mirrors.163.com/pypi/simple/
腾讯云 PyPI 镜像:https://mirrors.cloud.tencent.com/pypi/simple/

总结

通过本教程,您学会了如何使用一个Shell脚本自动安装和配置Python 3。您只需复制脚本、添加执行权限并执行脚本,即可轻松完成Python 3的安装和配置过程。

希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/192774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

51单片机项目(19)——基于51单片机的传送带产品计数器

1.功能描述 应用背景: 某生产线的传送带上不断地有产品单向传送,传送时会通过光电传感器产生方波信号,将该信号(可以采用方波发生器来模拟该信号)直接传送给51单片机,利用计数器0计量产品(方波信号)的个数,利用.定时器1产…

Python海绵宝宝

目录 系列文章 写在前面 海绵宝宝 写在后面 系列文章 序号文章目录直达链接表白系列1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want595.blog.cs…

leetcode 209. 长度最小的子数组(优质解法)

代码&#xff1a; //时间复杂度 O(N) ,空间复杂度 O(1) class Solution {//采用滑动窗口的方法解决public int minSubArrayLen(int target, int[] nums) {int numsLengthnums.length;int minLengthInteger.MAX_VALUE;int left0;int right0;int sum0;while (right<numsLengt…

FindSecBugs支持的检测规则

很多SAST集成了FindSecBugs这个开源工具&#xff0c;其好处是直接对Class文件进行检测&#xff0c;也就是直接检测二进制问题&#xff0c;可以直接检测war、jar&#xff0c;还是非常方便的。虽然误报率较高&#xff0c;但是这些检测出来的安全漏洞很多是安全从业人员耳熟能详的…

【SpringBoot】讲清楚日志文件lombok

文章目录 前言一、日志是什么&#xff1f;二、⽇志怎么⽤&#xff1f;三.自定义打印日志3.1在程序中得到日志对象3.2使用日志打印对象 四.⽇志级别4.1日志级别有什么用4.2 ⽇志级别的分类与使⽤ 五.日志持久化六.lombok6.1添加lobok依赖注意&#xff1a;使⽤ Slf4j 注解&#x…

linux 内核进程管理介绍

Linux内核进程管理是操作系统中非常重要的一部分&#xff0c;它负责管理和调度系统中的进程。本文将介绍Linux内核进程管理的工作原理、调度算法等方面的内容。 一、进程的创建和销毁 在Linux中&#xff0c;进程的创建通过fork()系统调用完成。fork()会创建一个子进程&#xf…

Linux 多线程(C语言) 备查

基础 1&#xff09;线程在运行态和就绪态不停的切换。 2&#xff09;每个线程都有自己的栈区和寄存器 1&#xff09;进程是资源分配的最小单位&#xff0c;线程是操作系统调度执行的最小单位 2&#xff09;线程的上下文切换的速度比进程快得多 3&#xff09;从应用程序A中启用应…

Linux系列-1 Linux启动流程——init与systemd进程

背景&#xff1a; 最近对所有项目完成了一个切换&#xff0c;服务管理方式由&#xff1a; init-> systemd。对相关知识进行总结一下。 1.启动流程 服务器的整体启动流程如下图所示&#xff1a; POST&#xff1a; 计算机通电后进行POST( Power-On Self-Test )加电自检&am…

linux之buildroot(3)配置软件包

Linux之buildroot(3)配置软件包 Author&#xff1a;Onceday Date&#xff1a;2023年11月30日 漫漫长路&#xff0c;才刚刚开始… 全系列文章请查看专栏: buildroot编译框架_Once_day的博客-CSDN博客。 参考文档&#xff1a; Buildroot - Making Embedded Linux Easymdev.t…

Hdoop学习笔记(HDP)-Part.17 安装Spark2

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

canvas 轮廓路径提取效果

前言 微信公众号&#xff1a;前端不只是切图 轮廓 对内容做border效果&#xff0c;可以先看下代码运行的效果 内容是黑线构成的五角星&#xff0c;其轮廓就是红线的部分&#xff0c;本文主要介绍如何在canvas中实现这种效果 Marching Square 这里运用到的是marching square算法…

单页面应用

单页面应用 1.什么是SPA 多页面应用&#xff1a;每个页面都是独立的html文件&#xff0c;页面切换是整体刷新&#xff0c;需要重新加载html、css、JS等文件&#xff0c;容易实现搜索引擎&#xff0c;数据通过url、cookie、localStore传递。 单页面应用&#xff1a;多个页面是…

redis.conf官方配置文件及sentinel.conf官方配置文件

目录 redis.conf配置文件 sentinel.conf配置文件 版本7.0.14 redis.conf配置文件 # Redis configuration file example. # # Note that in order to read the configuration file, Redis must be # started with the file path as first argument: # # ./redis-server /pat…

鸿蒙是Android套壳么,当然不是,ArkTS还是很有意思的

前段时间看新闻&#xff0c;说是明年开始鸿蒙就要和andorid脱钩了。 大概就是这样的&#xff1a; 看到这个&#xff0c;我兴趣就来了。我有个华为P30&#xff0c;升级过鸿蒙系统&#xff0c;用起来也没啥变化&#xff0c;兼容andorid应用&#xff0c;然后就是开机去掉了Powere…

详细学习Pyqt5的20种输入控件(Input Widgets)

Pyqt5相关文章: 快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图&#xff08;Item View&#xff09; 快速弄懂Pyqt5的4种项目部件&#xff08;Item Widget&#xff09; 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的10种容器&…

数据库表的管理

表的基本概念 表是包含数据库中所有数据的数据库对象。数据在表中的组织方式与在电子表格中相似&#xff0c;都是 按行和列的格式组织的。每行代表一条唯一的记录&#xff0c;每列代表记录中的一个字段。例如&#xff0c;在包含公 司员工信息的表中&#xff0c;每行代表一名员工…

19.字符串——查找三个字符串中的最大字符串(打擂台)

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 四、举一反三总结 前言 本系列为字符串处理函数编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 查找三个字符串中的最大字符串 二、题目分析 打擂台 三、解题 程序运行代码 #include<…

从零开始:PHP实现阿里云直播的简单方法!

1. 配置阿里云直播的推流地址和播放地址 使用阿里云直播功能前&#xff0c;首先需要在阿里云控制台中创建直播应用&#xff0c;然后获取推流地址和播放地址。 推流地址一般格式为&#xff1a; rtmp://{Domain}/{AppName}/{StreamName}?auth_key{AuthKey}-{Timestamp}-{Rand…

计算机 Wi-Fi 掉线后重新连接并恢复网络访问(GPT4)

以下是一个详细的批处理脚本&#xff0c;用于在计算机 Wi-Fi 掉线后重新连接并恢复网络访问&#xff1a; 以下结果为GPT4给出的答案 echo off echo 断开当前 Wi-Fi 连接... netsh wlan disconnect timeout /t 3 echo.echo 重置网络适配器... netsh interface set interface &…

如何使用手机制作证件照

1、打开vx搜索小&#x1f34a;x名称&#xff1a;标准证件照免冠照 2、选择你需要的证件照尺寸类型 3&#xff0e;选择手机照片生活照或者点击开始拍摄&#xff08;建议纯色的墙面好换底色&#xff09; 4&#xff0e;选择背景颜色&#xff0c;红底&#xff0c;蓝底奉背景颜色随你…