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

news2024/11/25 16:23:11

介绍

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

使用shell自动化安装教程

1. 复制脚本

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

#!/bin/bash

installDir="/opt/module/python"
# 可以修改为自己想安装的版本
version="3.8.1"

if [ ! -d "${installDir}" ]; then
  sudo mkdir -p "${installDir}"
  if [ $? -eq 0 ]; then
    echo "安装目录${installDir}已创建"
  else
    echo "请确保您有足够的权限来创建目录,请增加权限后再次执行"
    exit 1
  fi
fi
# 下载python安装所需的工具和库
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel
if [ $? -eq 0 ]; then
  echo "python安装所需的工具和库下载成功"
else
  echo "python安装所需的工具和库下载失败,请查看异常信息后重试"
  exit 1
fi
if [ ! -f /tmp/Python-$version.tgz ]; then
  wget https://www.python.org/ftp/python/$version/Python-$version.tgz -P /tmp
  if [ $? -eq 0 ]; then
    echo "/tmp/Python-$version.tgz下载成功"
  else
    echo "/tmp/Python-$version.tgz下载失败,请重试或手动下载到/tmp目录下再次执行"
    echo "下载地址:https://www.python.org/ftp/python/$version/Python-$version.tgz"
    exit 1
  fi
fi
if [ -d $installDir/Python-$version ]; then
  echo "$installDir/Python-$version 已存在,正在删除"
  sudo rm -rf $installDir/Python-$version
fi
tar -zxvf /tmp/Python-$version.tgz -C $installDir
if [ $? -eq 0 ]; then
  echo "/tmp/Python-$version.tgz解压成功"
else
  echo "/tmp/Python-$version.tgz解压失败,请查看异常信息后重试"
  exit 1
fi

cd $installDir/Python-$version
# 配置Python编译和安装过程的参数
#./configure --enable-optimizations
$installDir/Python-"$version"/configure
if [ $? -eq 0 ]; then
  echo "配置Python编译和安装过程的参数成功"
else
  echo "配置Python编译和安装过程的参数失败,请查看异常信息后重试"
  exit 1
fi
# 自动化构建和编译python
make -j 2
if [ $? -eq 0 ]; then
  echo "自动化构建和编译python成功"
else
  echo "自动化构建和编译python失败,请查看异常信息后重试"
  exit 1
fi
#使用altinstall而不是install可以避免覆盖系统默认的Python 2.x版本。
sudo make altinstall
if [ $? -eq 0 ]; then
  echo "altinstall成功"
else
  echo "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 ]; then
  echo "修改Python3作为默认版本成功"
else
  echo "修改Python3作为默认版本失败,请查看异常信息后重试"
  exit 1
fi
# 验证是否安装成功
if [[ $(python --version) == "Python $version" ]]; then
  echo "python3下载、安装、配置成功"
fi
# 解决安装python3后使用不了yum问题
yum_file="/usr/bin/yum"
down_file="/usr/libexec/urlgrabber-ext-down"
if grep -q "#!/usr/bin/python2" "$yum_file"; then
    echo "#!/usr/bin/python2已设置"
elif grep -q "#!/usr/bin/python" "$yum_file"; then
    sudo sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' "$yum_file"
    echo "#!/usr/bin/python2设置成功"
else
    echo "在 $yum_file 中找不到Python解释器"
fi
if grep -q "#! /usr/bin/python2" "$down_file"; then
    echo "#! /usr/bin/python2已设置"
elif grep -q "#! /usr/bin/python" "$down_file"; then
    sudo sed -i 's|#! /usr/bin/python|#! /usr/bin/python2|' "$down_file"
    echo "#!/usr/bin/python设置成功"
else
    echo "在 $down_file中找不到Python解释器"
fi
# 安装pip
#sudo yum install python3-pip
# 更新pip,解决pip下载一些python包失败问题
python -m pip install --upgrade pip

exit 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.coloradmin.cn/o/1288655.html

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

相关文章

java:spring-boot-starter-actuator的使用

简介 Spring Boot Actuator 是 Spring Boot 提供的一个功能强大的模块,用于监控和管理您的应用程序。它为开发人员和运维团队提供了许多有用的端点,用于获取有关应用程序运行时状态的信息。 什么是端点? "端点"是指提供了某种功能…

C++作业6

以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在,动物园里有一位讲解员&…

关于对Spring事件监听机制相关解析

1、Spring事件监听器使用 Spring事件监听体系包括三个组件:事件、事件监听器,事件广播器 事件:定义事件类型和事件源,需要继承ApplicationEvent import org.springframework.context.ApplicationEvent; public class OrderEvent…

springcloud智慧工地管理平台源码(工程全生命周期管理)

智慧工地采用全新的工程全生命周期管理理念,以物联网技术为核心,利用传感网络、远程视频监控、物联网、云计算等新型技术,依托移动和固定宽带网络,围绕施工过程管理,建造互联协同、智能生产、科学管理的信息化生态圈&a…

Python源码分享10:使用海龟画图turtle画哆啦A梦

turtle模块是一个Python的标准库之一,它提供了一个基于Turtle graphics的绘图库。Turtle graphics是一种流行的绘图方式,它通过控制一个小海龟在屏幕上移动来绘制图形。 turtle模块可以让您轻松地创建和控制海龟图形,从而帮助您学习Python编…

虚拟网络技术:bond技术

网卡bond也称为网卡捆绑,就是将两个或者更多的物理网卡绑定成一个虚拟网卡。 bond的作用: 1.提高网卡的吞吐量 2.增加网络的高可用,实现负载均衡。 一、bond简介 bond技术即bonding,能将多块物理网卡绑定到一块虚拟网卡上&…

AMEYA360--罗姆与Quanmatic公司利用量子技术优化制造工序并完成验证

全球知名半导体制造商罗姆(总部位于日本京都市)于2023年1月起与 Quanmatic Inc.(总部位于日本东京都新宿区,以下简称“Quanmatic”)展开合作,在半导体制造工序之一的EDS工序中测试并引入量子技术,以优化制造工序中的组合。目前,双…

springMVC实验(五)——数据校验

【知识要点】 数据校验的概念 在软件开发过程中,数据校验是非常重要的环节,用于确保数据的有效性和完整性 。数据校验分为客户端验证和服务端验证,客户端验证是确保人机交互过程中用户操作表单过程中的误操作,由JavaScript代码完…

Geoserver发布2000坐标系遇到的问题总结

在Geoserver上发布2000坐标系的服务时,要想正常发布服务,不仅仅是要涉及2000坐标系,还需要在发布的时候选择对坐标系。具体问题描述如下: 1.问题描述: 在发布好2000坐标系的服务后,在超图的平台加载服务时&…

联合基于信息论的安全和隐蔽通信的框架

这个标题很帅 abstractintroductionsystem modelPROPOSED JOINT OPTIMIZATION OF ITS AND COVERT TRANSMISSION RATE信息论安全 (ITS) Joint Information-Theoretic Secrecy and Covert Communication in the Presence of an Untrusted User and Warden …

根文件系统中文字符测试

一. 简介 本文在之前制作的根文件系统可以正常运行的基础上进行的,继上一篇文章地址如下: 根文件系统初步测试-CSDN博客 本文测试根文件系统的是否可以支持中文字符。 二. 根文件系统中文字符测试 1. 创建中文文件 打开 ubuntu虚拟机,进…

uniapp-hubildx配置

1.配置浏览器 (1)运行》运行到浏览器配置》配置web服务器 (2)选择浏览器安装路径 (3)浏览器安装路径: (3.1) 右键点击图标》属性 (3.2)选择目标&…

计算机组成原理-数据寻址-(相对寻址 基址寻址 变址寻址 )

文章目录 指令寻址vs数据寻址总览偏移寻址基址寻址基址寻址的作用变址寻址变址寻址的作用基址&变址复合寻址相对寻址相对寻址的作用 总结硬件如何实现数的比较 指令寻址vs数据寻址 总览 偏移寻址 变址寄存器:IX 基址寄存器:BR 基址寻址 没有基址…

EM32DX-C4【C#】站15

1外观: J301 直流 24V 电源输入 CAN0 CAN0 总线接口 CAN1 CAN1 总线接口 J201 IO 接线段子 S301-1、S301-2 输出口初始电平拨码设置 S301-3~S301-6 模块 CAN ID 站号拨码开关 S301-7 模块波特率拨码设置 S301-8 终端电阻选择开关 2DI: 公共端是…

HarmonyOS学习--初次下载安装和配置环境

一、Windows下载与安装软件 运行环境要求: 为保证DevEco Studio正常运行,建议电脑配置满足如下要求: 操作系统:Windows10 64位、Windows11 64位内存:8GB及以上硬盘:100GB及以上分辨率:1280*80…

第二证券:服务消费暖意尽显 产业升级促投资稳出口

如果说完结全年增加方针问题不大代表了2023年我国经济的“形”,那么消费、出资、出口这“三驾马车”在驱动增加过程中的结构性亮点则展示了我国经济的“势”。 2023年,服务消费暖意尽显,餐饮、文旅工作展示出的生气勃勃浮光掠影;…

群星璀璨!亚信科技、TM Forum联合举办数字领导力中国峰会,助百行千业打造转型升级双引擎

11月30日,亚信科技携手著名国际组织TM Forum(TeleManagement Forum 电信管理论坛)联合举办的2023数字领导力中国峰会在京隆重召开,国内外数百位行业领袖、专家学者、企业高管和生态伙伴齐聚一堂。大会由“数字领导力峰会”“IT数字…

为什么C语言用int *a 来声明指针变量,而不是int a声明?

为什么C语言用int *a 来声明指针变量,而不是int &a声明? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「C语言从专业入门到高级教程工具包」,点个关注&#xff0c…

第一节:认识微服务

一、微服务技术对比 Dubbo SpringCloudSpringCloudAlibaba注册中心zookeeper、Redis Eureka、ConsulNacos、Eureka服务远程调用Dubbo协议Feign(http协议)Dubbo、Feign配置中心无SpringCloudGateway、ZuulSpringCloudConfig、Nacos服务网…

React中ref的四种使用方法

个人公众号 公众号文章-React中ref的四种使用方法 个人公众号,求关注公众号~ 求指导,求点赞,求评论。 写在前面的废话 什么时候使用ref的环境就不说了,比如我们要获取一个输入框的value,无法通过state去获取&#x…