马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
问题现象
在 CentOS 上用源码编译 Python 3.11.8 时,make 中途报错并退出,典型信息是 Fatal Python error: init_import_site: Failed to import the site module 以及 SystemError: <built-in function compile> returned NULL without setting an exception,最终 make: *** [Python/frozen_modules/codecs.h] Error 1。
根因分析
这类错误几乎都源于编译环境不完整:缺少开发工具链(gcc、make)、或缺少 zlib/openssl/readline 等依赖的头文件,导致编译 Python 标准库时某些内置模块无法生成。解决思路是先补齐依赖、清理残留构建、再重新编译。
解决步骤
1. 安装开发工具与依赖
sudo yum -y groupinstall "Development Tools"
sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc-c++
2. 清理上一次构建
在源码根目录执行清理,避免旧的中间产物干扰:
make clean
3. 配置安装路径
./configure --prefix=/usr/local/python311
4. 重新编译并安装
make
sudo make install
5. 建立软链接并验证
rm -f /usr/bin/python3.11 && ln -s /usr/local/python311/bin/python3 /usr/bin/python3.11
python3.11 --version
排查建议
若仍失败,按报错信息定位具体文件与行号;也可在 Python 官方 issue 跟踪器或相关社区搜索相同错误。切勿直接覆盖系统自带的 /usr/bin/python(多为 Python 2 或系统依赖),新版本请走独立前缀与软链接,避免破坏 yum 等系统工具。
qidao123.com企服评测-应用市场 编辑提示
|