HOWTO · Python
Python 2와 3 간 전환
이 자습서에서는 Python 2와 3 사이를 전환하는 방법을 설명합니다.
이 페이지의 내용
프로젝트를 의도한 인터프리터로 실행하려면 Python 2 또는 Python 3 명령을 직접 사용하거나 프로젝트 환경에서 해당 버전을 선택하세요. 필요한 인터프리터가 설치되어 있어야 합니다. Python.org의 Python 2 지원 종료 안내에 따르면 Python 2는 2020년 1월에 지원이 종료되었습니다. 따라서 레거시 코드에 필요한 경우에만 사용하세요. 인터프리터를 선택해도 버전 간 코드가 변환되거나 보안 지원이 복구되지는 않습니다.
사용할 수 있는 Python 2 및 Python 3 인터프리터 확인
Linux와 macOS에서는 python2 --version 및 python3 --version 명령으로 설치된 인터프리터를 확인할 수 있습니다. python 명령은 운영체제와 설치 방식에 따라 서로 다른 버전을 가리킬 수 있으므로, 프로젝트에 필요한 버전을 선택한다고 가정하지 마세요. 명령을 찾을 수 없다면 운영체제와 프로젝트에 적합한 경로로 해당 인터프리터를 설치하세요. 사용할 수 있는 버전은 플랫폼마다 다릅니다.
Windows에서는 Python 런처로 설치된 버전을 선택할 수 있습니다. 명령 프롬프트나 PowerShell에서 py -2 --version 및 py -3 --version을 실행하세요. 해당 버전이 설치되어 있고 런처에서 검색 가능해야 합니다.
Linux와 macOS에서 Python 2 또는 Python 3 실행
Python 2 대화형 세션은 python2, Python 3 세션은 python3으로 시작하세요. app.py라는 스크립트를 실행하려면 각각 python2 app.py 또는 python3 app.py를 사용합니다. 이 명시적인 명령은 해당 실행에 사용할 인터프리터를 선택하며 시스템 전체의 기본값은 바꾸지 않습니다. 설치된 버전의 명령 이름이 다르다면 그 버전의 실행 파일 경로를 사용하세요.
Windows에서 Python 2 또는 Python 3 실행
Python 2는 py -2, Python 3은 py -3으로 시작할 수 있습니다. 스크립트를 실행하려면 py -2 app.py 또는 py -3 app.py를 사용하세요. 런처에서 요청한 버전을 사용할 수 없다고 표시되면 해당 버전이 설치되어 있고 런처에 등록되어 있는지 확인하세요. 한 셸에서 작동하는 명령도 그 셸의 PATH 설정에 따라 달라질 수 있습니다.
프로젝트별로 인터프리터와 종속 항목 분리
가상 환경을 사용하면 프로젝트에 설치한 패키지를 다른 프로젝트와 분리할 수 있습니다. 사용할 인터프리터로 환경을 만든 다음, 패키지를 설치하거나 프로젝트를 실행하기 전에 환경을 활성화하세요. Python 3에는 표준 라이브러리의 venv가 있습니다. 예를 들어 해당 인터프리터에 모듈이 포함되어 있다면 python3 -m venv .venv로 환경을 만들 수 있습니다. Python 2에는 venv가 없으므로 레거시 프로젝트에서는 해당 Python 2 인터프리터에 맞게 설치하고 설정한 virtualenv 같은 호환 가능한 타사 도구가 필요할 수 있습니다. 사용 가능 여부와 설정 방법은 운영체제와 설치된 도구에 따라 다릅니다.
지원되는 시스템에서는 pyenv 같은 도구로 프로젝트별 Python 버전을 선택할 수 있고, Docker를 사용하면 컨테이너 이미지에서 프로젝트를 격리할 수 있습니다. 두 방법 모두 추가 설정이 필요하며, 모든 플랫폼에서 사용할 수 있는 Python 2 빌드나 이미지가 제공되는 것은 아닙니다. 격리는 종속성 충돌을 줄이는 데 도움이 되지만 Python 2는 여전히 지원되지 않으며, 신뢰할 수 없는 입력이나 네트워크에 노출하면 안전하지 않을 수 있습니다. 새 작업에는 Python 3을 우선 사용하세요.
스크립트가 사용하는 인터프리터 확인
스크립트를 실행하는 것과 동일한 명령이나 활성화된 환경에서 버전을 확인하세요. 사용할 수 있는 명령은 python2 --version, python3 --version, py -2 --version, py -3 --version입니다. 패키지도 해당 인터프리터를 통해 설치해야 합니다. python3 -m pip install PACKAGE는 pip를 Python 3에 연결하고, Windows 런처를 사용할 수 있는 경우 py -2 -m pip install PACKAGE는 Python 2를 대상으로 합니다.
아래의 간단한 확인 코드를 스크립트에 넣고 위에서 선택한 명령으로 실행할 수도 있습니다. 실행 중인 인터프리터의 주 버전을 출력합니다. 코드와 출력 예시는 변경되지 않으며, 그 안의 표시 문구는 영어입니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
from __future__ import print_function
import sys
print("Python", sys.version_info[0])
Python 3
표시된 버전이 프로젝트에 필요한 버전과 다르면 명령을 바꾸거나 의도한 환경을 활성화한 다음 다시 확인하세요. 인터프리터를 선택하면 코드를 실행할 버전이 정해지지만, Python 2 문법이나 종속 항목이 Python 3과 호환되도록 바뀌지는 않습니다.