# python-install **Repository Path**: lu_jian_wei/python-install ## Basic Information - **Project Name**: python-install - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-11 - **Last Updated**: 2026-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # python-install 离线 Python 3.10 一键安装脚本,基于 [python-build-standalone](https://github.com/astral-sh/python-build-standalone) 预编译包,用于在内网/无外网的 Linux 服务器上快速部署 Python。 ## 适用环境 - 架构:`x86_64` 或 `aarch64` - glibc:≥ 2.17(CentOS 7、Ubuntu 16.04 及以上) - 权限:需要 root ## 仓库内容 ``` . ├── install.sh # 安装/卸载脚本 ├── cpython-3.10.20+20260602-x86_64-unknown-linux-gnu-install_only.tar.gz # x86_64 预编译包 └── cpython-3.10.20+20260602-aarch64-unknown-linux-gnu-install_only.tar.gz # aarch64 预编译包 ``` ## 用法 ```bash # 安装到默认目录 /usr/local/python sudo ./install.sh install # 安装到自定义目录 sudo ./install.sh install -p /opt/py310 # 卸载 sudo ./install.sh uninstall sudo ./install.sh uninstall -p /opt/py310 # 帮助 ./install.sh --help ``` ## 脚本行为 **安装**: 1. 校验 root、架构、glibc 版本。 2. 若系统已存在 `python3`,打印版本后直接退出(不覆盖系统 Python)。 3. 解压同目录下对应架构的 tar 包到 `${prefix}`(默认 `/usr/local/python`)。 4. 在 `/usr/local/bin/` 下建立 `python3`、`python3.10`、`pip3`、`pip3.10` 软链。 - 已是指向新装目录的软链 → 幂等覆盖。 - 其他文件/软链 → 备份成 `.bak.` 后再链接。 5. 运行 `python3 -c 'import sys, ssl, ctypes'` 自检。 **卸载**: 1. 校验 `${prefix}` 形态(含 `bin/python3`)+ 路径白名单(拒绝 `/`、`/usr` 等)。 2. 删除 `${prefix}` 目录。 3. 删除当前仍指向 `${prefix}/bin/*` 的软链;用户改向别处的不动。 4. `.bak.*` 备份**不会**被自动清理,需要手动处理或恢复。 ## 预编译包来源 来自 [astral-sh/python-build-standalone](https://github.com/astral-sh/python-build-standalone/releases) 的 `install_only` 变体。如需升级版本,替换对应架构的 `.tar.gz` 并更新 `install.sh` 中的 `TARBALL_NAME` 常量。