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

Python使用总结之Linux部署python3环境

Python使用总结之Linux部署python3环境

在进行python环境搭建的时候,我们通常需要执行大量的命令行语句,一不小心输错,还得搞半天,这里是一个可以一键安装的sh脚本,基于centos8.2。安装的python版本可以自己修改,我这里是3.12.4

1. 新建sh文件

新建sh文件后,将脚本内容复制进去。

vi setup_python3.12.sh

脚本内容如下:

#!/bin/bash# 脚本名称: setup_python3.12_centos8.sh
# 描述: 在CentOS 8.2上编译安装Python 3.12及其开发环境 (优化国内源)
# 作者: Gemini
# 日期: 2025年6月12日 (更新日期)echo "开始在CentOS 8.2上设置Python 3.12环境..."# 0. 检查是否为root用户
if [ "$(id -u)" -ne 0 ]; thenecho "此脚本需要root权限或sudo权限来运行。请使用 'sudo ./setup_python3.12.sh'。"exit 1
fi# 1. 更新系统并安装必要的编译依赖
echo "1. 更新系统并安装必要的编译依赖..."
# 再次强调:这里假设您已经通过上述步骤将dnf仓库切换到国内vault源并确保可用。
# 如果dnf update仍然失败,请先手动解决仓库问题。
sudo dnf update -y || { echo "dnf update 失败,请检查网络和dnf仓库配置(CentOS 8 EOL问题)。"; exit 1; }# 再次确保zlib-devel和其他关键依赖已安装
sudo dnf install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel \readline-devel sqlite-devel libuuid-devel gdbm-devel tk-devel \make git wget || { echo "安装必要依赖失败,退出。"; exit 1; }# 额外检查 zlib-devel 是否真的安装成功
if ! rpm -q zlib-devel &>/dev/null; thenecho "错误:zlib-devel 未安装成功。请手动运行 'sudo dnf install -y zlib-devel' 并解决可能的问题。"exit 1
fi
echo "zlib-devel 已确认安装。"# 2. 创建一个用于存放Python源代码的目录
echo "2. 创建一个用于存放Python源代码的目录..."
PYTHON_INSTALL_DIR="/opt/python3.12_src"
mkdir -p "$PYTHON_INSTALL_DIR"
cd "$PYTHON_INSTALL_DIR" || { echo "无法进入目录 $PYTHON_INSTALL_DIR,退出。"; exit 1; }# 3. 下载Python 3.12的源代码 (使用国内镜像源示例)
PYTHON_VERSION="3.12.4"
PYTHON_TARBALL="Python-$PYTHON_VERSION.tgz"# *** 请注意:以下是示例国内镜像URL,你需要根据实际情况修改 ***
# 访问例如阿里云或华为云镜像站点的Python下载区,找到对应版本
# 例如:https://mirrors.aliyun.com/python/
# 或者:https://mirrors.huaweicloud.com/python/
PYTHON_DOWNLOAD_URL="https://mirrors.aliyun.com/python/$PYTHON_VERSION/$PYTHON_TARBALL"
# 如果阿里云没有,可以尝试清华源(TUNA),但通常其PyPI镜像更常用,文件下载可能需要深挖
# PYTHON_DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/archive/python/3.12.4/Python-3.12.4.tgz" # 示例,可能路径不准确echo "3. 下载Python $PYTHON_VERSION 源代码 (尝试使用国内源)..."
wget -q "$PYTHON_DOWNLOAD_URL"
if [ $? -ne 0 ]; thenecho "下载 Python $PYTHON_VERSION 源代码失败,请检查下载地址或网络连接。"echo "下载URL: $PYTHON_DOWNLOAD_URL"echo "建议手动检查国内Python镜像站点,如阿里云、华为云或清华大学TUNA,获取正确的下载链接。"exit 1
fi# 4. 解压源代码
echo "4. 解压源代码..."
tar -xf "$PYTHON_TARBALL"
if [ $? -ne 0 ]; thenecho "解压 Python $PYTHON_TARBALL 失败,退出。"exit 1
fi# 5. 进入解压后的目录并编译安装
PYTHON_SRC_DIR="Python-$PYTHON_VERSION"
echo "5. 进入解压后的目录并编译安装Python $PYTHON_VERSION..."
cd "$PYTHON_SRC_DIR" || { echo "无法进入源代码目录 $PYTHON_SRC_DIR,退出。"; exit 1; }# 新增:清理之前可能存在的编译产物,确保全新编译
echo "清理旧的编译产物(如果有)..."
make clean > /dev/null 2>&1
rm -f Makefile config.log config.status Modules/Setup
rm -rf build Python/sysconfig.py
echo "旧的编译产物清理完成。"# 配置编译选项
INSTALL_PATH="/usr/local/python$PYTHON_VERSION"
echo "开始配置 Python 编译,安装路径为: $INSTALL_PATH"
./configure --prefix="$INSTALL_PATH" --enable-optimizations --with-ensurepip=installif [ $? -ne 0 ]; thenecho "配置 Python 编译失败,退出。"echo "请检查 config.log 文件获取更多错误信息: $PYTHON_INSTALL_DIR/$PYTHON_SRC_DIR/config.log"grep -i "zlib" config.logexit 1
fiecho "配置成功。检查 config.log 中 zlib 相关信息(仅供参考):"
grep -i "zlib" config.log# 编译和安装
echo "开始编译 Python (这可能需要一些时间,利用所有CPU核心)..."
make -j$(nproc)
if [ $? -ne 0 ]; thenecho "编译 Python 失败,退出。"exit 1
fiecho "开始安装 Python 到 $INSTALL_PATH..."
sudo make altinstall
if [ $? -ne 0 ]; thenecho "安装 Python 失败,退出。"echo "错误信息提示 'zipimport.ZipImportError: can't decompress data; zlib not available' 意味着 zlib 库在安装 ensurepip 时不可用。"echo "请确认 zlib-devel (以及 zlib 运行时库) 已正确安装并且 configure 步骤检测到了它。"exit 1
fiecho "Python $PYTHON_VERSION 已成功安装到 $INSTALL_PATH"# 6. 配置软链接
echo "6. 配置软链接以便于访问 Python 3.12..."
PYTHON_BIN="$INSTALL_PATH/bin/python$PYTHON_VERSION"
PIP_BIN="$INSTALL_PATH/bin/pip$PYTHON_VERSION"if [ -f "$PYTHON_BIN" ]; thensudo ln -sf "$PYTHON_BIN" /usr/local/bin/python3.12echo "软链接 /usr/local/bin/python3.12 -> $PYTHON_BIN 已创建."
elseecho "警告: Python 可执行文件未找到在 $PYTHON_BIN,无法创建软链接."
fiif [ -f "$PIP_BIN" ]; thensudo ln -sf "$PIP_BIN" /usr/local/bin/pip3.12echo "软链接 /usr/local/bin/pip3.12 -> $PIP_BIN 已创建."
elseecho "警告: pip 可执行文件未找到在 $PIP_BIN,无法创建软链接."
fi# 7. 验证安装
echo "7. 验证 Python 3.12 安装..."
/usr/local/bin/python3.12 --version
/usr/local/bin/pip3.12 --versionif [ $? -eq 0 ]; thenecho "Python 3.12 环境搭建成功!"echo "你可以通过 'python3.12' 命令来启动 Python 3.12 解释器。"echo "你可以通过 'pip3.12' 命令来安装 Python 包。"
elseecho "Python 3.12 安装验证失败,请检查上述步骤。"
fi# 8. 清理下载的源代码 (可选)
echo "8. 清理下载的源代码..."
cd "$PYTHON_INSTALL_DIR" && cd ..
rm -rf "$PYTHON_INSTALL_DIR"
echo "清理完成。"echo "脚本执行完毕。"

2.为脚本添加可执行权限

chmod +x setup_python3.12.sh

3.执行安装脚本

./setup_python3.12.sh

过程中可能会还会遇到一些环境错误,不过通过脚本已经解决了很多问题,其他问题请自行查询解决,另外这个脚本好像没有创建指向python3的软连接,可以通过下列方式排查执行。

4. 确认安装成功

ls -l /usr/local/python3.12.4/bin/python3.12
ls -l /usr/local/python3.12.4/bin/pip3.12

5. 手动创建软连接

sudo ln -sf /usr/local/python3.12.4/bin/python3.12 /usr/local/bin/python3.12
sudo ln -sf /usr/local/python3.12.4/bin/pip3.12 /usr/local/bin/pip3.12

6. 确认生效

ls -l /usr/local/bin/python3.12
ls -l /usr/local/bin/pip3.12

7.配置python3命令执行

sudo rm -f /usr/bin/python3  # 如果存在,先删除旧的软链接
sudo ln -s /usr/local/python3.12.4/bin/python3.12 /usr/bin/python3

以上,就可以和python一起愉快的玩耍了~

相关文章:

  • 基于springboot视频及游戏管理系统+源码+文档+应用视频
  • linux安装Redis6.0.8
  • 进程间通信详解(三):Linux进程信号深度解析
  • Unity Assembly的灵活用法总结
  • 深度学习入门(4):resnet50
  • 【Fifty Project - D36】
  • 【sqlite开发】遇到的问题及解决方法收录
  • 【chipyard】Gemmini 定制
  • 【MicronTech】eMMC 部件编号解析
  • python3.12安装记录
  • Systemctl 手记:从服务管理到资源控制的进阶实践
  • 纯血HarmonyOS ArKTS NETX 5 打造小游戏实践:大鱼吃小鱼(附源文件)
  • 明远智睿SD2351核心板:边缘计算时代的工业级核心引擎深度解析
  • 安装 Poppler(Windows)
  • linux 配置mvn
  • RK3588 ENV 环境配置之 fw_printenv
  • 高效管理Python环境:Miniforge、pyenv和Poetry深度对比与应用
  • TEXT2SQL-vanna多表关联的实验
  • 开源模型应用落地:GLM-4 上手实测体验报告!
  • 瓷器数字化展示文物三维扫描建模-中科米堆
  • 小企业网站免费建设/网络热词
  • 用哪个程序做网站收录好6/n127网推广
  • 遵义做什么网站好/seo是哪个国家
  • 崇明建设镇乡镇府网站/哈尔滨seo网站管理
  • 网站的建设怎么写/网络营销做的比较好的企业
  • 怎么做免费网站推/百度竞价推广常用到的工具