Linux 安装独立 Python 环境:源码编译与虚拟环境
整理独立安装 Python 的步骤,纠正覆盖系统解释器和并行安装命令的问题,说明如何用指定解释器创建项目虚拟环境。
安装目标:项目独立使用,系统工具继续使用原解释器
原文记录了 Python 3.11.4 的源码编译过程。这是历史版本记录,不是对当前新部署版本的推荐。安装前应选择适合操作系统且仍满足维护要求的版本,并阅读对应版本的构建依赖。
本次移除了删除 /usr/bin/python、覆盖系统软链接以及修改 yum、防火墙脚本解释器的步骤。业务项目不应通过破坏系统解释器来切换版本。
1. 先记录环境
cat /etc/os-release
command -v python3
python3 --version
command -v gcc
如果发行版仓库已经提供所需版本,先评估包管理器安装方式。确需源码构建时,按所选 Python 版本和发行版准备编译器、OpenSSL、zlib、SQLite、libffi 等依赖。原命令中的 opssl-devel 拼写有误,不应继续复制。
2. 下载并核对源码
从 Python 源码下载页面 选择目标版本,核对下载来源及该发行包提供的完整性校验信息。
下列命令使用 X.Y.Z 占位,必须先替换为已选择并核验的版本。它们是顺序说明,未在本机执行:
tar -xzf Python-X.Y.Z.tgz
cd Python-X.Y.Z
./configure --prefix=/opt/python-X.Y.Z
make
sudo make altinstall
原文的 make & make install 会把前一个命令放到后台,不能保证编译成功后再安装。这里改为顺序执行,并采用官方建议的 altinstall,避免遮蔽系统的 python3。
安装到 /opt 通常需要相应权限;也可选择用户可写的独立前缀。不要为完成安装而修改系统 Python 的路径。
3. 使用明确的解释器创建项目环境
以下以已经安装的 /opt/python-3.11.x/bin/python3.11 表示示例路径;实际目录必须根据前面的安装结果替换。
/opt/python-3.11.x/bin/python3.11 --version
/opt/python-3.11.x/bin/python3.11 -m venv .venv
.venv/bin/python -m pip --version
需要安装依赖时,使用 .venv/bin/python -m pip,让 pip 与目标解释器保持一致。原文使用 pip3.11.4 建立系统软链接的步骤已删除:不要根据版本号猜测可执行文件名称。
4. 检查标准库与构建结果
.venv/bin/python -c "import sys, ssl, sqlite3; print(sys.executable); print(ssl.OPENSSL_VERSION); print(sqlite3.sqlite_version)"
如果 _ssl 缺失,应回到构建依赖和配置输出定位原因;仅重复运行 pip 通常无法补齐一个编译时没有构建的标准库扩展。
更多核对步骤见同系列“Python 安装后排错”(原文章 ID 83)。