第 6 章 修改 Python 脚本中的解释器指令


在 Red Hat Enterprise Linux 10 中,可执行 Python 脚本应该使用解释器指令(也称为 hashbangs 或 shebangs),至少指定主 Python 版本。例如:

#!/usr/bin/python3
#!/usr/bin/python3.12
Copy to Clipboard Toggle word wrap

构建任何 RPM 软件包时会自动运行 /usr/lib/rpm/redhat/brp-mangle-shebangs buildroot 策略(BRP)脚本,并尝试在所有可执行文件中更正解释器指令。当遇到带有模糊的解释器指令的 Python 脚本时,BRP 脚本会生成错误,例如 #!/usr/bin/python#!/usr/bin/env python

您可以修改 Python 脚本中的解释器指令,以防止 RPM 构建时构建错误。

先决条件

  • Python 脚本中的一些解释器指令会导致构建错误。

流程

  • 根据您的场景,执行以下步骤之一修改解释器指令:

    • spec 文件的 %prep 部分中使用以下宏:

      %py3_shebang_fix <SCRIPTNAME> …​
      Copy to Clipboard Toggle word wrap

      SCRIPTNAME 可以是任何文件、目录或文件和目录列表。

      因此,列出的所有文件以及列出目录中所有 .py 文件都会修改其解释器指令以指向 %{python3}。将保留原始解释器指令的现有标记,并将添加 %{py3_shebang_flags} 宏中定义的其他标志。您可以在 spec 文件中重新定义 %{py3_shebang_flags} 宏,以更改将要添加的标记。

    • 修改打包的 Python 脚本,以便它们符合预期格式。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat