Python Linux解压安装脚本
本脚本用于安装python3.x, 需要指定python版本,如12代表3.12
安装文件下载自 python-build-standalone
我下载的文件后缀是:-x86_64-unknown-linux-gnu-pgo-full.tar.zst,根据需要自行下载
注意:install_only或tar.gz包的目录没有install这一层文件夹
#!/bin/bash# 参数处理# 第一个参数为python版本,3.x的后一位,必填
# 第二个参数为zip文件夹路径,默认为~/Downloads# 使用示例
# ./install_python.sh -v 12 -d /home/gxc/Downloadsshow_help() {echo "Usage: $0 [options]"echo " -h, --help 显示帮助信息"echo " -v, --version 指定python版本,如12代表3.12"echo " -d, --dir 指定zip文件夹路径,默认为~/Downloads"echo " -p, --prefix 指定python安装目录,默认为/usr/local/python3x"echo " -b, --bin 指定python软链接目录,默认为/usr/bin/"echo " -n, --name 指定python安装目录名,默认为python3x"
}# 解析参数
while [ "$#" -gt 0 ]; docase "$1" in-h|--help)show_helpexit 0;;-v|--version)v=$2shift 2;;-d|--dir)zip_dir=$2shift 2;;-p|--prefix)prefix=$2shift 2;;-b|--bin)bin=$2shift 2;;-n|--name)name=$2shift 2;;*)echo "Unknown option: $1"show_helpexit 1;;esac
doneif [ -z "$v" ]; thenecho "Error: No python3.x version specified, please specify the version, like '12'"exit 1
fipython_version="3.$v"
echo "version: $python_version"zip_dir=${zip_dir:-~/Downloads}
echo "zip dir: $zip_dir"prefix=${prefix:-/usr/local/python3$v}
bin=${bin:-/usr/bin/}
name=${name:-python3$v}py_bin=$prefix/install/bin/python$python_version
py_bin_link=$bin$name
echo "link: $py_bin -> $py_bin_link"# 进入zip_dir
echo "enter $zip_dir"
pushd $zip_dir > /dev/null 2>&1# 使用find命令搜索最新的.zst文件
fp=$(find . -type f -name "cpython-$python_version*.zst" -printf '%T+ %p\n' | sort | tail -n 1 | cut -d' ' -f2-)# 检查是否找到了文件
if [ -z "$fp" ]; thenecho "Error: No .zst file found in the directory: $zip_dir"exit 1
elseecho "The found .zst file is: $fp"read -p "Do you want to continue? (y/n): " answercase $answer in[Yy]* )echo "Continuing..."# 在这里添加你想继续执行的命令;;[Nn]* )echo "Exiting..."exit 0;;* )echo "Invalid input. Exiting..."exit 1;;esac
fiecho "file: $fp"# 删除旧的python解压目录
if [ -a 'python' ]
thenecho "dir 'python' exists, remove it"rm -rf python
fi# 解压
echo "unzip $fp"
tar xf $fp# 检查解压后的文件
echo "check unzip file"
if [ ! -d 'python' ]
thenecho "Error: No 'python' directory found in the zip file: $fp"exit 1
fi
if [ ! -x "./python/install/bin/python$python_version" ]
thenecho "Error: No './python/install/bin/python$python_version' found in the zip file: $fp"exit 1
fi# 删除旧的python安装目录
if [ -a $prefix ]
thenecho "remove old python"sudo rm -rf $prefix
fi# 移动解压的python到指定目录
echo "move python to $prefix"
sudo mv ./python $prefix# 创建软链接
echo "link $py_bin -> $py_bin_link"
sudo ln -sf $py_bin $py_bin_link# 回到原目录
popd > /dev/null 2>&1echo "finish install python$python_version"
相关文章:
Python Linux解压安装脚本
本脚本用于安装python3.x, 需要指定python版本,如12代表3.12 安装文件下载自 python-build-standalone 我下载的文件后缀是:-x86_64-unknown-linux-gnu-pgo-full.tar.zst,根据需要自行下载 注意:install_only或tar.gz包的目录没有…...
numpy 逻辑运算方法介绍
在 NumPy 中,逻辑运算方法用于对数组中的元素进行逻辑操作,通常用于布尔数组,也可用于数值数组,非零值视为 True,零值视为 False。常见的逻辑运算方法有: 1. numpy.logical_and 逐元素进行逻辑与运算&…...
怎么查看网站是否被谷歌收录,查看网站是否被谷歌收录的简便方法
查看网站是否被谷歌收录,有多种简便方法可供选择。以下是一些常用的简便方法: 一、使用“site:”指令 打开谷歌搜索引擎: 在浏览器中打开Google.com,确保使用的是谷歌的官方搜索引擎。 输入查询指令: 在搜索框中输…...
【前端开发入门】前端开发环境配置
目录 引言一、Vscode编辑器安装1. 软件下载2. 软件安装3. 插件安装 二、Nodejs环境安装及版本控制1. 安装内容2. 使用nvm安装2.1 软件下载并安装2.2 nvm基本指令2.3 nvm下载过慢导致超时解决 三、git安装及配置1. 软件下载2. 软件安装3. 基础配置 四、总结 引言 本系列教程旨在…...
Windows驱动开发(二)
1. NT和WDM式驱动 1. NT式驱动 传统的Windows系统驱动类型。NT式驱动的启动/停止/安装/卸载只能由 服务控制管理程序组件(SCM) 来完成的。 包括最简单的hello world,以及目前常用的文件过滤框架 minifilter 都是基于NT式实现的。 NT式驱动的最大特点即完全不依赖硬…...
Hotspot是什么?
Hotspot 简单来说,JVM的一种。 一、HotSpot 的官方定义 HotSpot 是 Oracle 公司开发的一个高性能的 Java 虚拟机(JVM)。它通过一系列先进的技术和优化手段,为 Java 应用程序提供高效的运行环境,实现了跨平台的代码执行…...
k8s-集群部署1
k8s-集群部署1 一、基础环境准备二、docker环境准备三、k8s集群部署1.kubeadm创建集群2.使用kubeadm引导集群 总结 一、基础环境准备 首先,需要准备三个服务器实例,这里我使用了阿里云创建了三个实例,如果不想花钱,也可以在VM上创…...
wordpress Contact form 7发件人邮箱设置
此教程仅适用于演示站有留言的主题,演示站没有留言的主题,就别往下看了,免费浪费时间。 使用了Contact form 7插件的简站WordPress主题,在有人留言时,就会发邮件到网站的系统邮箱(一般与管理员邮箱为同一个)里。上面显…...
15分钟学 Python 第38天 :Python 爬虫入门(四)
Day38 : Python爬虫异常处理与反爬虫机制 章节1:异常处理的重要性 在爬虫开发过程中,网络请求和数据解析常常会遭遇各种异常。正确的异常处理可以提高程序的稳定性,避免崩溃,并帮助开发者快速定位问题。 章节2:常见…...
GWAS分析中显著位点如何注释基因:excel???
大家好,我是邓飞。 今天星球的小伙伴问了一个问题: 我现在在做GWAS分析,现在已经找到性状关联的SNP位点,下一步我如何根据position 找到基因呢? 关于基因注释,之前写过一些博客,可以用到的软件…...
深入浅出 CSS 定位:全面解析与实战指南
“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 目录 前言文章有误敬请斧正 不胜感恩!1. CSS 定位概述2. 定位类型详解2.1 static(默认定位)2.2 relative(相对定位)2.3 absolute(绝对定位&am…...
HTTPS协议详解:从原理到流程,全面解析安全传输的奥秘
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…...
Android 13.0 系统内存优化之修改dalvik虚拟机的内存参数
1.前言 在13.0的系统rom开发定制中,app应用也是运行在dalvik虚拟机上的,所以对于一些内存低的系统中,在某些大应用会出现耗内存 卡顿情况,这是系统分配的内存不够大,在进行耗内存的操作,就会出现频繁gc等等原因造成不流畅的现象,接下来就分析下 虚拟机分配内存的相关原理…...
C# 无边框窗体,加阴影效果、多组件拖动、改变大小等功能完美实现优化版效果体验
一、预览效果 国庆节第一天,祝祖国繁荣昌盛! 1.1 效果图 (WinForm无边框窗体,F11可全屏) 拖动窗体时半透明效果(拖动时参考窗体后面释放位置) 说明:本功能的实现基于网友的原型完善而来,更多代码可以参考他的文章 h...
深入解析 ChatGLM 模型:核心原理、优势与未来应用前景
1. 引言 1.1 ChatGLM 模型概述 ChatGLM 是一类基于自回归语言模型的生成式预训练模型,专门设计用于处理对话系统中的自然语言生成任务。ChatGLM 模型依托于 Transformer 架构,具备高度并行化的计算能力,并能够捕捉长距离的语言依赖关系。在…...
python全栈学习记录(二十二)多态性、封装、绑定方法与非绑定方法
多态性、封装、绑定方法与非绑定方法 文章目录 多态性、封装、绑定方法与非绑定方法一、多态性二、封装三、绑定方法与非绑定方法 一、多态性 多态指的是同一种事物的多种形态,如水:冰、水蒸气、液态水,又如动物:猫、狗、猪。 多…...
用Python制作自己的聊天机器人:从零开始构建智能对话助手
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 近年来,聊天机器人已经成为日常生活中不可或缺的工具,从自动客服到个人助手,聊天机器人在各类应用中广泛存在。如果你想了解如何制作一个自己的聊天机器人,那么这篇文章将带你一步步实现这个目标。我们将使用…...
LabVIEW裂纹深度在线监测系统
随着铁路运输技术的快速发展,火车安全问题成为重中之重,尤其是轮面裂纹的检测和管理。裂纹的出现可能导致严重的列车事故,因此,建立可靠的在线监测系统,实时掌握裂纹情况,对保障铁路运输安全至关重要。 La…...
工业物联网的伦理和社会影响
随着科技的飞速发展,工业物联网(IIoT)已经成为现代工业领域的重要组成部分。它通过将各种设备、传感器和系统连接起来,实现了生产过程的智能化、自动化和高效化。然而,在享受工业物联网带来的巨大便利和经济效益的同时…...
TCP --- 确认应答机制以及三次握手四次挥手
序言 在前一篇文章中,我们介绍了 UDP协议 (点击查看)👈,该协议给我们的感觉就两个字 — 简单,只是将我们的数据进行简单的添加报头然后发送。当然使用起来虽然简单,但是否能送到目的地,那就要看网络的状态了…...
告别枯燥理论!用Quartus II和LPM_ROM手把手带你玩转FPGA正弦波音乐盒
用FPGA演奏音乐:基于Quartus II的数字音乐盒实战指南 当技术遇上艺术,冰冷的电路也能唱出温暖的旋律。今天我们将打破传统FPGA实验的刻板印象,用一块开发板和几行代码,打造一个会唱歌的数字音乐盒。这不是普通的波形发生器&#x…...
18V/4A同步降压转换器:MPQ8632GLE-4的COT控制与快速瞬态响应解析
MPQ8632GLE-4:4A/18V 同步降压转换器的紧凑型电源解决方案在通信设备、分布式电源系统以及服务器主板等应用中,电源管理单元需要在小面积内实现高效率的电压转换,同时保持良好的瞬态响应。传统的 PWM 控制器往往需要复杂的环路补偿设计&#…...
淘宝淘金币自动化脚本:每天节省25分钟的数字生活革命
淘宝淘金币自动化脚本:每天节省25分钟的数字生活革命 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 你是否…...
百度 Agent 安全中心:构筑企业智能体的安全底座
本文整理自 2026 年 5 月 14 日 Create2026 百度 AI 开发者大会 - Agent Infra 专题论坛,百度智能云云安全产品总经理聂科峰的同名主题演讲。在 AI 生产力加速进化的时代,Agent 正在从「会说」快速演进到「会做」。从 Chatbot、Copilot,到能够…...
国产芯赋能低功耗人体感应小夜灯方案(YL4056H 充电管理)
一、方案概述人体感应小夜灯作为智能家居入门级产品,核心需求是低功耗、长续航、充电安全、光控 人体感应双触发。本方案基于远乐 YL4056H 高耐压线性锂电充电芯片,搭配 PIR 红外感应模块 光敏电阻,实现 “白天休眠、夜间人来灯亮、人走延时…...
(最新版)GitGitHub实操图文详解教程(10)—SSH
版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 1. 应用场景 前面几课已经完成了本地Git基础操作:先通过git init初始化仓库,再用git status查看状态,用git add把修改加入暂存区,用git commit创建本地提交,最后用git log查看提交历史。到…...
ARM与FPGA通信接口设计:从并行总线到AXI的软硬件协同实践
1. 项目概述:从一次调试“事故”说起去年,我在一个边缘计算网关的项目上,遇到了一个让人头大的问题。项目核心是一块定制板,处理器是四核的ARM Cortex-A53,旁边紧挨着一片中等规模的FPGA。我们的设计是让ARM负责复杂的…...
10分钟打造专属AI歌手:Retrieval-based-Voice-Conversion-WebUI语音克隆终极指南
10分钟打造专属AI歌手:Retrieval-based-Voice-Conversion-WebUI语音克隆终极指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retr…...
Envoy 详解:云原生时代的高性能网络代理
Envoy 详解:云原生时代的高性能网络代理 文章目录Envoy 详解:云原生时代的高性能网络代理前言核心特性架构与设计哲学核心组件与术语xDS 协议:动态配置的基石主要使用场景与其他代理的对比(Envoy vs Nginx)部署模式与未…...
TI毫米波雷达实战:从mmWave Studio配置到3D-FFT点云生成的保姆级教程
TI毫米波雷达实战:从硬件连接到3D-FFT点云生成的完整指南 毫米波雷达技术正在工业检测、自动驾驶和智能家居领域掀起革命。作为TI毫米波雷达开发的核心工具链,mmWave Studio与DCA1000的组合为工程师提供了从信号采集到高级处理的完整解决方案。本文将带您…...
