当前位置: 首页 > news >正文

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"
http://www.lryc.cn/news/453320.html

相关文章:

  • numpy 逻辑运算方法介绍
  • 怎么查看网站是否被谷歌收录,查看网站是否被谷歌收录的简便方法
  • 【前端开发入门】前端开发环境配置
  • Windows驱动开发(二)
  • Hotspot是什么?
  • k8s-集群部署1
  • wordpress Contact form 7发件人邮箱设置
  • 15分钟学 Python 第38天 :Python 爬虫入门(四)
  • GWAS分析中显著位点如何注释基因:excel???
  • 深入浅出 CSS 定位:全面解析与实战指南
  • HTTPS协议详解:从原理到流程,全面解析安全传输的奥秘
  • Android 13.0 系统内存优化之修改dalvik虚拟机的内存参数
  • C# 无边框窗体,加阴影效果、多组件拖动、改变大小等功能完美实现优化版效果体验
  • 深入解析 ChatGLM 模型:核心原理、优势与未来应用前景
  • python全栈学习记录(二十二)多态性、封装、绑定方法与非绑定方法
  • 用Python制作自己的聊天机器人:从零开始构建智能对话助手
  • LabVIEW裂纹深度在线监测系统
  • 工业物联网的伦理和社会影响
  • TCP --- 确认应答机制以及三次握手四次挥手
  • GPT带我学-设计模式17-装饰器模式
  • 【Redis】如何在 Ubuntu 上安装 Redis 5
  • 房屋水电费记账本:内置的数组数据击按钮不能删除,页面手动添加的可以删除
  • 【ubuntu】apt是什么
  • 堆排序算法的原理与应用
  • 【2024版本】Mac/Windows IDEA安装教程
  • Oracle bbed编译安装及配置
  • MindSearch 部署到Github Codespace 和 Hugging Face Space
  • 【Maven】依赖管理,Maven仓库,Maven核心功能
  • Android wifi信号和漫游信号设置
  • 检查cuda和显卡的可用性