19장. 동적 프로그래밍 언어 설치 및 사용


Red Hat은 Python, PHP, Tcl/TK와 같은 다양한 프로그래밍 언어를 제공합니다. 이를 사용하여 자체 애플리케이션 및 서비스를 개발할 수 있습니다.

19.1. Python 소개

Python은 개체 지향, 명령적, 기능적, 절차적 패러다임과 같은 여러 프로그래밍 패러다임을 지원하는 고급 프로그래밍 언어입니다. Python에는 동적 의미 체계가 있으며 범용 프로그래밍에 사용할 수 있습니다.

Red Hat Enterprise Linux를 사용하면 시스템 툴, 데이터 분석 툴 또는 웹 애플리케이션을 제공하는 패키지와 같이 시스템에 설치된 많은 패키지가 Python으로 작성됩니다. 이러한 패키지를 사용하려면 python* 패키지가 설치되어 있어야 합니다.

19.1.1. Python 버전

호환되지 않는 Python 버전은 널리 사용되는 Python 2.x 및 Python 3.x입니다. RHEL 8에서는 다음 버전의 Python을 제공합니다.

표 19.1. RHEL 8의 Python 버전
버전설치할 패키지명령 예이후 사용 가능라이프 사이클

Python 3.6

python3, python36

python3, python3.6, pip3, pip3.6

RHEL 8.0

전체 RHEL 8

Python 2.7

python2

python2, pip2

RHEL 8.0

짧음

Python 3.8

python38

python3.8, pip3.8

RHEL 8.2

짧음

Python 3.9

python39

python3.9, pip3.9

RHEL 8.4

짧음

Python 3.11

python3.11

python3.11, pip3.11

RHEL 8.8

짧음

Python 3.12

python3.12

python3.12, pip3.12

RHEL 8.10

짧음

지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux 라이프 사이클Red Hat Enterprise Linux Application Streams 라이프 사이클을 참조하십시오.

3.9까지의 각 Python 버전은 별도의 모듈에 배포됩니다. Python 3.11 및 Python 3.12는 python3.11python3.12 패키지를 포함하여 수정되지 않은 RPM 패키지 제품군으로 배포됩니다.

동일한 RHEL 8 시스템에 여러 Python 버전을 병렬로 설치할 수 있습니다.

중요

Python 버전을 설치하거나, 호출하거나, 다른 방식으로 상호 작용할 때 항상 Python 버전을 지정합니다. 예를 들어 패키지 및 명령 이름에 python 대신 python 3 을 사용합니다. 모든 Python 관련 명령에도 버전이 포함되어야 합니다(예: pip3,pip2,pip3.8,pip3.9,pip3.11 또는 pip3.12 ).

버전이 없는 python 명령(/usr/bin/python)은 RHEL 8에서 기본적으로 사용할 수 없습니다. alternatives 명령을 사용하여 구성할 수 있습니다. 자세한 내용은 버전이 없는 Python 구성을참조하십시오.

alternatives 명령을 사용하여 변경한 사항을 제외하고 /usr/bin/python 에 대한 수동 변경 사항은 업데이트 시 덮어쓸 수 있습니다.

시스템 관리자는 다음과 같은 이유로 Python 3을 사용합니다.

  • Python 3은 Python 프로젝트의 주요 개발 방향을 나타냅니다.
  • 업스트림 커뮤니티의 Python 2 지원은 2020년에 종료되었습니다.
  • 인기 있는 Python 라이브러리는 업스트림에서 Python 2 지원을 중단하고 있습니다.
  • Red Hat Enterprise Linux 8의 Python 2는 라이프사이클이 짧고 고객을 위해 Python 3 으로 원활하게 전환하는 것을 목표로 합니다.

개발자의 경우 Python 3은 Python 2에 비해 다음과 같은 이점이 있습니다.

  • Python 3를 사용하면 표현, 유지 관리 및 올바른 코드를 보다 쉽게 작성할 수 있습니다.
  • Python 3으로 작성된 코드는 더 길게 됩니다.
  • Python 3에는 asyncio, f-strings, 고급 압축 풀기, 키워드 전용 인수, 연결된 예외 등의 새로운 기능이 있습니다.

그러나 레거시 소프트웨어를 사용하려면 /usr/bin/python 을 Python 2로 구성해야 할 수 있습니다. 이러한 이유로 Red Hat Enterprise Linux 8과 함께 기본 python 패키지가 배포되지 않으며 버전되지 않은 Python 구성에 설명된 대로 Python 2와 3을 /usr/bin/python 으로 사용할 수 있습니다.

중요

Red Hat Enterprise Linux 8의 시스템 툴은 고객이 직접 사용할 수 없는 내부 platform-python 패키지에서 제공하는 Python 버전 3.6을 사용합니다. Python 3.6용 python36 패키지에서 python3 또는 python3.6 명령을 사용하거나 이후 Python 버전을 사용하는 것이 좋습니다.

다른 패키지에 필요하므로 RHEL 8에서 platform-python 패키지를 제거하지 마십시오.

19.1.2. Python 버전 간의 주요 차이점

RHEL 8에 포함된 Python 버전은 다양한 측면에서 다릅니다.

Python 바인딩

python38 python 3.11python3.12 패키지 모음에는 python36 모듈에 제공되는 시스템 툴(RPM, DNF, SELinux 등)에 대한 동일한 바인딩이 포함되지 않습니다. 따라서 기본 운영 체제 또는 바이너리 호환성이 가장 필요한 인스턴스에서 python36 을 사용합니다. 시스템 바인딩이 다양한 Python 모듈의 최신 버전과 함께 필요한 고유 인스턴스의 경우 Python의 venv 또는 virtualenv 환경에 pip 를 통해 설치된 타사 업스트림 Python 모듈과 함께 python36 모듈을 사용합니다.

Python 3.11 및 Python 3.12 가상 환경은 virtualenv대신 venv 를 사용하여 생성해야 합니다.

python3- virtualenv 패키지에서 제공하는 RHEL 8의 virtualenv 유틸리티는 Python 3.11 및 Python 3.12와 호환되지 않습니다. virtualenv 를 사용하여 가상 환경을 생성하려고 하면 오류 메시지와 함께 실패합니다. 예를 들면 다음과 같습니다.

$ virtualenv -p python3.11 venv3.11
Running virtualenv with interpreter /usr/bin/python3.11
ERROR: Virtual environments created by virtualenv < 20 are not compatible with Python 3.11.
ERROR: Use python3.11 -m venv instead.

Python 3.11 또는 Python 3.12 가상 환경을 생성하려면 표준 라이브러리에서 venv 모듈을 사용하는 python3.11 -m venv 또는 python3.12 -m venv 명령을 사용합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.