不能直接 make install,因为它会覆盖系统管理的 python3 和 pip3 符号链接,导致 apt 工具失效;应使用 make altinstall 安装带版本号的独立可执行文件,或用 --prefix 指定用户目录安装以避免权限与冲突问题。

为什么不能直接 make install
因为 make install 会把 python3 和 pip3 符号链接写入 /usr/local/bin/,覆盖系统原本由 apt 管理的 python3(软链到 /usr/bin/python3)。apt 自身是用 Python 写的,一旦这个链接被破坏,sudo apt update 会静默退出、apt list --upgradable 报 ImportError: No module named 'apt_pkg',甚至无法重装 python3-apt。
make altinstall 是最简安全路径
它只安装带完整版本号的可执行文件,比如 python3.13 和 pip3.13,完全不碰 python3、pip3 这两个名字。系统工具照常运行,你也能立刻调用新版本。
- 解压后进入源码目录,运行:
./configure --enable-optimizations(不加--prefix也行,altinstall本身已隔离) - 编译:
make -j$(nproc)(用满 CPU 核心,节省时间) - 关键一步:
sudo make altinstall—— 注意拼写,不是install - 验证:
python3.13 --version应输出Python 3.13.x;which python3.13通常是/usr/local/bin/python3.13
更稳妥:用 --prefix 装进用户目录
如果你在 CI/CD、容器或共享服务器上操作,或者不想依赖 /usr/local,就彻底避开系统路径。装进家目录,零权限、零冲突、删掉就是 rm -rf $HOME/python313。
- 先建目录:
mkdir -p $HOME/python313 - 配置时指定:
./configure --prefix=$HOME/python313 --enable-optimizations - 编译:
make -j$(nproc) - 安装:
make install(此时不用sudo) - 加进 PATH:
echo 'export PATH="$HOME/python313/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
编译前必须装齐依赖,漏一个就卡在 configure 阶段
Ubuntu 22.04 默认不装开发头文件,./configure 会静默跳过 sqlite3、ssl、readline 等模块,导致后续 pip 安装包失败(比如 psycopg2 编译报错、requests 没 HTTPS 支持)。
- 一次性装全:
sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev -
--enable-optimizations必加:它启用 PGO(Profile-Guided Optimization),让解释器实际运行快约 10%,但编译时间翻倍——值得等 - 下载源码别用旧链接:
wget https://www.python.org/ftp/python/3.13.*/Python-3.13.*.tgz(截至 2026 年 7 月,最新稳定版是3.13.3)
python3.13 -m venv 创建虚拟环境,也必须确保 libsqlite3-dev 和 libssl-dev 已安装——否则虚拟环境里 pip 会无法连接 PyPI,报 Connection refused 或 SSLError,查半天才发现底层模块根本没编进去。Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











