5.6. Python 스크립트에서 인터프리터 지시문 처리


Red Hat Enterprise Linux 8에서 실행 가능한 Python 스크립트는 최소한 주요 Python 버전을 명시적으로 지정하는 인터프리터 지시문( hashbangs 또는 herbangs)을 사용할 것으로 예상됩니다. 예를 들면 다음과 같습니다.

#!/usr/bin/python3
#!/usr/bin/python3.6
#!/usr/bin/python3.8
#!/usr/bin/python3.9
#!/usr/bin/python3.11
#!/usr/bin/python3.12

RPM 패키지를 빌드할 때 /usr/lib/rpm/redhat/brp-mangle-shebangs BRP(Buildroot 정책) 스크립트가 자동으로 실행되고 모든 실행 파일에서 인터프리터 지시문을 수정하려고 합니다.

BRP 스크립트는 다음과 같은 모호한 인터프리터 지시문을 사용하여 Python 스크립트가 발생할 때 오류를 생성합니다.

#!/usr/bin/python

또는

#!/usr/bin/env python

5.6.1. Python 스크립트에서 인터프리터 지시문 수정

RPM 빌드 시 빌드 오류를 유발하는 Python 스크립트의 인터프리터 지시문을 수정합니다.

사전 요구 사항

  • Python 스크립트의 인터프리터 지시문 중 일부는 빌드 오류가 발생합니다.

절차

인터프리터 지시문을 수정하려면 다음 작업 중 하나를 완료합니다.

  • platform-python-devel 패키지에서 pathfix.py 스크립트를 적용합니다.

    # pathfix.py -pn -i %{__python3} PATH …​

    여러 개의 PATHs 를 지정할 수 있습니다. PATH 가 디렉터리인 경우 pathfix.py 는 모호한 인터프리터 지시문이 있는 뿐만 아니라 ^[a-zA-Z0-9_]+\.py$ 패턴과 일치하는 Python 스크립트를 반복적으로 스캔합니다. %prep 섹션 또는 %install 섹션의 끝에 이 명령을 추가합니다.

  • 패키지된 Python 스크립트가 예상 형식을 준수하도록 수정합니다. 이를 위해 pathfix.py 는 RPM 빌드 프로세스 외부에서도 사용할 수 있습니다. RPM 빌드 외부에서 pathfix.py 를 실행하는 경우 위의 예에서 %{__python3}/usr/bin/python3 과 같은 인터프리터 지시문의 경로로 바꿉니다.

패키지된 Python 스크립트에 Python 3.11 이외의 버전이 필요한 경우 필요한 버전을 포함하도록 이전 명령을 조정합니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동