You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RHEL8构建Python RPM包时shebang被改写为platform-python该如何处理

解决方案

方案1:完全禁用shebang改写,保留原有设置

你之前配置不生效的原因是%py3_install宏自带独立的shebang修复逻辑,仅禁用brp规则不生效,需要在spec文件最开头新增两行配置:

%undefine __brp_mangle_shebangs
%undefine __python3_shebang_fix

配置完成后重新构建即可保留你原始脚本中的#!/usr/bin/python3不变。

方案2:指定shebang为/usr/bin/python3,不关闭改写逻辑

如果你希望保留系统的其他打包校验规则,仅指定shebang的Python路径,在spec开头添加以下配置即可:

%define __python3 /usr/bin/python3
%undefine __python_shebang_clamp

该配置会让改写逻辑直接使用/usr/bin/python3作为shebang路径,不会限制到具体的3.6小版本,兼容所有Python3.6+环境。

兜底方案:安装阶段手动强制修改

如果上述配置仍不生效,可在%install阶段的%py3_install后添加手动替换逻辑:

%install
%py3_install
# 手动替换所有Python脚本的shebang
find %{buildroot} -type f -name "*.py" -executable | xargs sed -i '1s|^#!.*python.*|#!/usr/bin/python3|'

该方法会强制把所有可执行Python脚本的首行shebang替换为目标路径,优先级最高不会被其他规则覆盖。

内容的提问来源于stack exchange,提问作者danidar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:45:01