1. 명령 줄과 환경¶
CPython 인터프리터는 명령 줄과 환경에서 다양한 설정을 찾습니다.
다른 구현의 명령 줄 체계는 다를 수 있습니다. 자세한 내용은 대안 구현들 참조하십시오.
1.1. 명령 줄¶
파이썬을 호출할 때 다음 옵션들을 지정할 수 있습니다:
python [-bBdEhiIOPqRsSuvVWx?] [-c command | -m module-name | script | - ] [args]
물론, 가장 일반적인 사용 사례는 간단한 스크립트 호출입니다:
python myscript.py
1.1.1. 인터페이스 옵션¶
인터프리터 인터페이스는 유닉스 셸의 인터페이스와 비슷하지만, 몇 가지 추가 호출 방법을 제공합니다:
tty 장치에 연결된 표준 입력으로 호출하면, 명령을 입력하라는 프롬프트를 준 후 EOF(파일 끝 문자, 유닉스에서는 Ctrl-D, 윈도우에서는 Ctrl-Z, Enter로 만들 수 있습니다)가 읽힐 때까지 실행합니다. 대화형 모드에 대한 자세한 내용은 대화형 모드를 참조하세요.
파일 이름 인자나 파일을 표준 입력으로 사용해서 호출하면, 해당 파일에서 스크립트를 읽고 실행합니다.
디렉터리 이름 인자로 호출되면, 해당 디렉터리에서 적절히 이름 붙은 스크립트를 읽고 실행합니다.
-c command로 호출되면, command 로 주어진 파이썬 문장(들)을 실행합니다. 여기서 command 는 개행 문자로 구분된 여러 개의 문장을 포함할 수 있습니다.-m module-name으로 호출되면, 주어진 모듈은 표준 가져오기 메커니즘을 사용하여 위치를 찾고 스크립트로 실행됩니다.
비대화형 모드에서는, 실행하기 전에 전체 입력을 구문 분석합니다.
인터페이스 옵션은 인터프리터에 의해 소비되는 옵션의 목록을 종료합니다, 뒤따르는 모든 인자는 sys.argv 로 들어갑니다 – 첫 번째 요소, 서브 스크립트 0(sys.argv[0])은 프로그램 소스를 반영하는 문자열임에 유의하세요.
- -c <command>¶
command 의 파이썬 코드를 실행합니다. command 는 개행 문자로 구분된 하나 이상의 문장일 수 있는데, 일반 모듈 코드에서와같이 선행 공백은 의미가 있습니다.
이 옵션을 주면,
sys.argv의 첫 번째 요소는"-c"가 되고, 현재 디렉터리를sys.path의 시작 부분에 추가합니다 (그 디렉터리에 있는 모듈을 최상위 모듈로 임포트 할 수 있게 합니다).command를 인자로 감사 이벤트(auditing event)cpython.run_command를 발생시킵니다.버전 3.14에서 변경: command 는 실행 전에 자동으로 내어쓰기 처리됩니다.
- -m <module-name>¶
표준 가져오기 메커니즘을 사용하여 모듈을 찾고 그 내용을
__main__모듈로서 실행합니다.인자가 모듈 이름이기 때문에, 파일 확장자(
.py)를 주지 않아야 합니다. 모듈 이름은 유효한 절대 파이썬 모듈 이름이어야 하지만, 구현이 항상 이를 강제하는 것은 아닙니다 (예를 들어, 하이픈을 포함하는 이름을 허락할 수도 있습니다).패키지 이름(이름 공간 패키지 포함)도 허용됩니다. 일반 모듈 대신 패키지 이름이 제공되면, 인터프리터는
<pkg>.__main__을 메인 모듈로 실행합니다. 이 동작은 인터프리터에 스크립트 인자로 전달되는 디렉터리 및 zip 파일의 처리와 의도적으로 유사합니다.참고
이 옵션은 내장 모듈이나 확장 모듈에는 사용될 수 없는데, 이것들은 파이썬 모듈 파일을 갖고 있지 않기 때문입니다. 그러나, 원래 소스 파일이 없는 사전 컴파일된 모듈에는 여전히 사용할 수 있습니다.
이 옵션을 주면,
sys.argv의 첫 번째 요소는 모듈 파일의 전체 경로가 됩니다 (모듈 파일을 찾는 동안에는 첫 번째 요소를"-m"으로 설정합니다).-c옵션과 마찬가지로, 현재 디렉터리가sys.path의 시작 부분에 추가됩니다.-I옵션을 사용하면sys.path가 현재 디렉터리나 사용자의 site-packages 디렉터리를 포함하지 않는 격리 모드에서 스크립트를 실행할 수 있습니다. 모든PYTHON*환경 변수도 무시됩니다.많은 표준 라이브러리 모듈에는 스크립트로 실행할 때 호출되는 코드가 들어 있습니다. 한 예는
timeit모듈입니다:python -m timeit -s "setup here" "benchmarked code here" python -m timeit -h # for details
module-name을 인자로 감사 이벤트(auditing event)cpython.run_module을 발생시킵니다.버전 3.1에서 변경:
__main__서브 모듈을 실행할 패키지 이름을 제공할 수 있습니다.버전 3.4에서 변경: 이름 공간 패키지도 지원됩니다.
- -
표준 입력(
sys.stdin)에서 명령을 읽습니다. 표준 입력이 터미널이면,-i가 묵시적으로 적용됩니다.이 옵션을 주면,
sys.argv의 첫 번째 요소는"-"이 되고, 현재 디렉터리가sys.path의 처음에 추가됩니다.인자 없이 감사 이벤트(auditing event)
cpython.run_stdin을 발생시킵니다.
- <script>
script 에 담긴 파이썬 코드를 실행합니다. script 는 파이썬 파일이나
__main__.py파일이 들어있는 디렉터리나__main__.py파일을 포함하는 zip 파일을 가리키는 파일 시스템 경로(절대나 상대)여야 합니다.이 옵션을 주면,
sys.argv의 첫 번째 요소는 명령 줄에서 주어진 스크립트 이름이 됩니다.스크립트 이름이 파이썬 파일을 직접 가리키면, 해당 파일을 포함하는 디렉터리가
sys.path의 시작 부분에 추가되고, 파일은__main__모듈로 실행됩니다.스크립트 이름이 디렉터리 나 zip 파일을 가리키면, 스크립트 이름이
sys.path의 시작 부분에 추가되고, 해당 위치의__main__.py파일을__main__모듈로 실행합니다.-I옵션을 사용하면sys.path가 스크립트 디렉터리나 사용자의 site-packages 디렉터리를 포함하지 않는 격리 모드에서 스크립트를 실행할 수 있습니다. 모든PYTHON*환경 변수도 무시됩니다.filename을 인자로 감사 이벤트(auditing event)cpython.run_file을 발생시킵니다.더 보기
runpy.run_path()파이썬 코드에서 직접 사용할 수 있는 동등한 기능
인터페이스 옵션을 주지 않으면, -i 가 묵시적으로 적용되고, sys.argv[0] 는 빈 문자열("")이 되고, 현재 디렉터리가 sys.path 의 처음에 추가됩니다. 또한, 플랫폼에서 사용 가능한 경우 (Readline 구성 를 참조하세요), 탭 완성 및 히스토리 편집이 자동으로 활성화됩니다.
더 보기
버전 3.4에서 변경: 탭 완성과 히스토리 편집의 자동 활성화.
1.1.2. 일반 옵션¶
- --help-env¶
파이썬 특정 환경 변수에 대한 간단한 설명을 인쇄한 후 종료합니다.
Added in version 3.11.
- --help-all¶
전체 사용 정보를 출력하고 종료합니다.
Added in version 3.11.
1.1.3. 기타 옵션¶
- -b¶
bytes나bytearray를 인코딩을 지정하지 않고str로 변환하거나,bytes나bytearray를str과,bytes를int와 비교할 때 경고를 합니다. 옵션이 두 번 주어지면 (-bb) 에러를 줍니다.
- -B¶
주어지면, 파이썬은 소스 모듈을 임포트 할 때
.pyc파일을 쓰려고 하지 않습니다.PYTHONDONTWRITEBYTECODE도 참조하십시오.
- --check-hash-based-pycs default|always|never¶
해시 기반
.pyc파일의 검증 동작을 제어합니다. 캐시된 바이트 코드 무효화를 참조하세요.default로 설정하면, 검사형과 비검사형 해시 기반 바이트 코드 캐시 파일은 기본 의미에 따라 유효성이 검사됩니다.always로 설정하면, 모든 해시 기반.pyc파일들은, 검사형과 비검사형을 가리지 않고, 해당 소스 파일에 대해 유효성이 검사됩니다.never로 설정되면, 해시 기반.pyc파일은 해당 소스 파일에 대해 유효성이 검사되지 않습니다.타임스탬프 기반
.pyc파일의 의미는 이 옵션의 영향을 받지 않습니다.
- -d¶
파서 디버깅 출력을 켭니다 (전문가만을 위한 기능입니다).
PYTHONDEBUG환경 변수도 참조하십시오.이 옵션은 :ref:`Python 디버그 빌드 <debug-build>`가 필요하며, 그렇지 않으면 무시됩니다.
- -E¶
설정되었을 수 있는 모든
PYTHON*환경 변수를 무시합니다, 예를 들어PYTHONPATH와PYTHONHOME.
- -i¶
실행 후 대화형 모드로 진입합니다.
-i옵션을 사용하면 다음 상황 중 어느 곳에서든 대화형 모드로 진입합니다:대화형 모드는
sys.stdin가 터미널로 보이지 않을 때도 시작합니다.PYTHONSTARTUP파일은 읽지 않습니다.이것은 스크립트가 예외를 발생시킬 때 전역 변수나 스택 트레이스를 검사하는 데 유용할 수 있습니다.
PYTHONINSPECT도 참조하십시오.
- -I¶
격리된 모드로 파이썬을 실행합니다. 이것은 또한
-E,-P및-s옵션을 묵시적으로 적용합니다.격리 모드에서
sys.path는 스크립트 디렉터리나 사용자의 site-packages 디렉터리를 포함하지 않습니다. 모든PYTHON*환경 변수도 무시됩니다. 사용자가 악성 코드를 주입하는 것을 방지하기 위해 추가 제한이 부과될 수 있습니다.Added in version 3.4.
- -O¶
assert 문과
__debug__의 값에 대한 조건부 코드를 제거합니다..pyc확장자 앞에.opt-1을 추가하여 컴파일된 (바이트 코드) 파일의 이름을 구분합니다 (PEP 488을 참조하세요).PYTHONOPTIMIZE도 참조하십시오.버전 3.5에서 변경: PEP 488 에 따라
.pyc파일명을 수정합니다.
- -OO¶
-O를 적용하고 독스트링도 버립니다..pyc확장자 앞에.opt-2를 추가하여 컴파일 된(바이트 코드) 파일의 이름을 구분합니다 (참조 PEP 488을 참조하세요).버전 3.5에서 변경: PEP 488 에 따라
.pyc파일명을 수정합니다.
- -P¶
sys.path앞에 잠재적으로 안전하지 않은 경로를 추가하지 마십시오:python -m module명령 줄: 현재 작업 디렉터리 앞에 붙이지 마십시오.python script.py명령 줄: 스크립트 디렉터리 앞에 붙이지 마십시오. 심볼릭 링크인 경우, 심볼릭 링크를 해결하십시오.python -c code및python(REPL) 명령 줄: 빈 문자열, 즉 현재 작업 디렉터리를 앞에 붙이지 마십시오.
PYTHONSAFEPATH환경 변수와-E및-I(isolated) 옵션도 참고하십시오.Added in version 3.11.
- -q¶
대화형 모드에서도 저작권과 버전 메시지를 표시하지 않습니다.
Added in version 3.2.
- -R¶
해시 무작위화를 켜십시오. 이 옵션은
PYTHONHASHSEED환경 변수가random이 아닌 값으로 설정된 경우에만 효과가 있습니다. 해시 무작위화는 기본적으로 활성화되어 있습니다.이전 버전의 파이썬에서는, 이 옵션이 해시 무작위화를 켜서, str과 bytes 객체의
__hash__()값이 예측할 수 없는 난수로 “솔트(salt)” 됩니다. 개별 파이썬 프로세스 내에서 상수로 유지되지만, 반복되는 파이썬 실행 간에는 예측할 수 없습니다.해시 무작위화는 신중하게 선택된 입력으로 딕셔너리 구성의 최악의 경우 성능 O\ (n\ 2) 복잡도를 공략하는 서비스 거부에 대한 보호를 제공하기 위한 것입니다. 자세한 내용은 https://ocert.org/advisories/ocert-2011-003.html 을 참조하십시오.
PYTHONHASHSEED는 해시 시드 시크릿에 고정값을 설정할 수 있게 합니다.Added in version 3.2.3.
버전 3.7에서 변경: 이 옵션은 더는 무시되지 않습니다.
- -s¶
사용자 site-packages 디렉터리를sys.path에 추가하지 않습니다.PYTHONNOUSERSITE도 참조하세요.더 보기
PEP 370 – 사용자별 site-packages 디렉터리
- -S¶
site모듈의 임포트와 이 모듈이 수반하는sys.path의 사이트 의존적 조작을 비활성화합니다. 또한site가 나중에 명시적으로 임포트될 때도 이 조작을 비활성화합니다 (조작하기를 원하면site.main()을 호출하십시오).
- -u¶
stdout 과 stderr 스트림을 버퍼링하지 않도록 만듭니다. 이 옵션은 stdin 스트림에는 영향을 미치지 않습니다.
PYTHONUNBUFFERED도 참조하세요.버전 3.7에서 변경: stdout 과 stderr 스트림의 텍스트 계층은 이제 버퍼링 되지 않습니다.
- -v¶
모듈이 초기화될 때마다 메시지를 인쇄하여, 로드된 위치(파일명이나 내장 모듈)를 표시합니다. 두 번 주어지면 (
-vv), 모듈을 검색할 때 검사되는 각 파일에 대한 메시지를 인쇄합니다. 종료 시 모듈 정리에 대한 정보도 제공합니다.버전 3.10에서 변경:
site모듈은 사이트별 경로 및 처리 중인.pth파일을 보고합니다.PYTHONVERBOSE도 참조하세요.
- -W arg¶
경고 제어. 파이썬의 경고 장치는 기본적으로
sys.stderr로 경고 메시지를 인쇄합니다.가장 단순한 설정은 프로세스가 만드는 모든 경고에 무조건 특정 액션을 적용합니다 (그렇지 않으면 기본적으로 무시되는 경고조차도):
-Wdefault # 호출 위치마다 한 번 경고합니다 -Werror # 예외로 변환합니다 -Walways # 매번 경고합니다 -Wall # -Walways 와 같습니다 -Wmodule # 호출하는 모듈마다 한 번 경고합니다 -Wonce # 파이썬 프로세스마다 한 번 경고합니다 -Wignore # 경고하지 않습니다
액션 이름은 원하면 줄일 수 있고, 인터프리터는 이를 적절한 액션 이름으로 해석합니다. 예를 들어,
-Wi는-Wignore와 같습니다.인자의 전체 형식은 다음과 같습니다:
action:message:category:module:lineno
빈 필드는 모든 값과 일치합니다. 후행 빈 필드는 생략될 수 있습니다. 예를 들어
-W ignore::DeprecationWarning은 모든 DeprecationWarning 경고를 무시합니다.action 필드는 위에 설명되어 있지만, 나머지 필드에 일치하는 경고에만 적용됩니다.
message 필드는 경고 메시지의 시작 부분과 일치해야 합니다. 이 일치는 대소문자를 구분하지 않습니다. 만약 슬래시(/)로 시작하고 끝나면 정규식을 지정하고, 그렇지 않으면 리터럴 문자열을 지정합니다.
category 필드는 경고 범주(예:
DeprecationWarning)와 일치합니다. 이것은 클래스 이름이어야 합니다. 일치 테스트는 메시지의 실제 경고 범주가 지정된 경고 범주의 서브 클래스인지 여부를 검사합니다.module 필드는 (완전히 정규화된) 모듈 이름과 일치합니다. 이 일치는 대소문자를 구분합니다. 만약 슬래시(/)로 시작하고 끝나면, 완전히 정규화된 모듈 이름의 시작 부분이 일치해야 하는 정규식을 지정하고, 그렇지 않으면 완전히 정규화된 모듈 이름과 같아야 하는 리터럴 문자열을 지정합니다.
lineno 필드는 경고가 발생한 줄 번호와 일치하는 줄 번호를 지정하며, 0은 모든 줄 번호와 일치하므로 생략된 줄 번호와 동일합니다.
다중
-W옵션이 주어질 수 있습니다; 경고가 두 개 이상의 옵션과 일치하면 마지막으로 일치하는 옵션의 액션이 수행됩니다. 유효하지 않은-W옵션은 무시됩니다 (하지만, 최초의 경고가 발생할 때 유효하지 않은 옵션에 관한 경고 메시지가 출력됩니다).경고는
PYTHONWARNINGS환경 변수와 파이썬 프로그램 내에서warnings모듈을 사용해서 제어할 수도 있습니다. 예를 들어,warnings.filterwarnings()함수는 경고 메시지에 정규식을 적용하는 데 사용할 수 있습니다.자세한 내용은 경고 필터와 경고 필터 설명를 참조하십시오.
버전 3.15에서 변경: message 및 module 에 대한 정규식 지원을 추가했습니다.
- -x¶
소스의 첫 번째 줄을 건너 뛰어서, 유닉스 이외의 형식의
#!cmd을 사용할 수 있게 합니다. 이것은 DOS 전용 핵(hack)을 위한 것입니다.
- -X¶
다양한 구현 특정 옵션을 위해 예약되어 있습니다. CPython은 현재 다음과 같은 가능한 값을 정의합니다:
-X faulthandler는faulthandler를 활성화합니다.PYTHONFAULTHANDLER도 참조하세요.Added in version 3.3.
-X showrefcount는 프로그램이 끝나거나 대화형 인터프리터에서 각각의 문장 뒤에서, 총 참조 횟수와 사용된 메모리 블록의 수를 출력합니다. 이것은 디버그 빌드에서만 작동합니다.Added in version 3.4.
-X tracemalloc은tracemalloc모듈을 사용하여 파이썬 메모리 할당 추적을 시작합니다. 기본적으로, 가장 최근 프레임만 추적의 트레이스백에 저장됩니다. NFRAME 프레임의 트레이스백 한도로 추적을 시작하려면-X tracemalloc=NFRAME을 사용하십시오. 자세한 정보는tracemalloc.start()와PYTHONTRACEMALLOC을 참조하십시오.Added in version 3.4.
-X int_max_str_digits는 정수 문자열 변환 길이 제한 을 구성합니다.PYTHONINTMAXSTRDIGITS도 참고하십시오.Added in version 3.11.
어떤 임포트가 얼마나 걸리는지 보여주기 위해
-X importtime를 사용합니다. 모듈 이름, 누적 시간(중첩 임포트 포함) 및 자체 시간(중첩 임포트 제외)을 보여줍니다. 출력은 멀티 스레드 애플리케이션에서 손상될 수 있습니다. 일반적인 사용 예는python -X importtime -c 'import asyncio'입니다.-X importtime=2는 임포트된 모듈이 이미 로드되었는지를 나타내는 추가 출력을 활성화합니다. 이러한 경우, 시간 열에 모두 문자열cached가 인쇄됩니다.:envvar:`PYTHONPROFILEIMPORTTIME`도 참고하십시오.
Added in version 3.7.
버전 3.14에서 변경: 로드된 모듈의 임포트도 추적할 수 있도록
-X importtime=2를 추가하고,1과2외의 값은 향후 사용을 위해 예약했습니다.-X dev: 파이썬 개발 모드를 활성화해서, 기본적으로 활성화하기에는 너무 비싼 추가적인 실행시간 검사를 도입합니다.PYTHONDEVMODE도 참조하세요.Added in version 3.7.
-X utf8은 파이썬 UTF-8 모드를 활성화합니다.-X utf8=0은 명시적으로 파이썬 UTF-8 모드를 비활성화합니다 (그렇지 않으면 자동으로 활성화될 때조차).PYTHONUTF8도 참조하십시오.Added in version 3.7.
-X pycache_prefix=PATH는.pyc파일을 코드 트리 대신에 지정된 디렉터리를 루트로 하는 병렬 트리에 쓰도록 합니다.PYTHONPYCACHEPREFIX도 참조하십시오.Added in version 3.8.
-X warn_default_encoding은 로케일별 기본 인코딩으로 파일을 열 때EncodingWarning을 발생시킵니다. 또한PYTHONWARNDEFAULTENCODING도 참고하십시오.Added in version 3.10.
-X no_debug_ranges는 코드 객체의 모든 명령어에 위치 정보(끝 라인, 시작 열 오프셋 및 끝 열 오프셋)를 매핑하는 테이블 포함을 비활성화합니다. 이는 더 작은 코드 객체와 pyc 파일이 필요할 때 유용하며, 인터프리터가 트레이스백을 표시할 때 추가적인 시각적 위치 표시기를 억제합니다. 또한PYTHONNODEBUGRANGES도 참고하십시오.Added in version 3.11.
-X frozen_modulesdetermines whether or not frozen modules are ignored by the import machinery. A value ofonmeans they get imported andoffmeans they are ignored. The default isonif this is an installed Python (the normal case). If it’s under development (running from the source tree) then the default isoff. Note that theimportlib_bootstrapandimportlib_bootstrap_externalfrozen modules are always used, even if this flag is set tooff. See alsoPYTHON_FROZEN_MODULES.Added in version 3.11.
-X perf``는 Linux ``perf프로파일러 지원을 활성화합니다. 이 옵션을 제공하면perf프로파일러가 Python 호출을 보고할 수 있게 됩니다. 이 옵션은 일부 플랫폼에서만 사용 가능하며, 현재 시스템에서 지원되지 않으면 아무런 작업을 수행하지 않습니다. 기본값은 “off”입니다. 또한PYTHONPERFSUPPORT및 :ref:`perf_profiling`도 참고하십시오.Added in version 3.12.
-X perf_jit``는 DWARF 지원을 사용한 Linux ``perf프로파일러 지원을 활성화합니다. 이 옵션을 제공하면perf프로파일러가 DWARF 정보를 사용하여 Python 호출을 보고할 수 있게 됩니다. 이 옵션은 일부 플랫폼에서만 사용 가능하며, 현재 시스템에서 지원되지 않으면 아무런 작업을 수행하지 않습니다. 기본값은 “off”입니다. 또한PYTHON_PERF_JIT_SUPPORT및 :ref:`perf_profiling`도 참고하십시오.Added in version 3.13.
-X disable_remote_debug는 PEP 768 에 설명된 원격 디버깅 지원을 비활성화합니다. 여기에는 다른 프로세스에서 실행할 코드를 예약하는 기능과 현재 프로세스에서 실행할 코드를 받는 기능 모두가 포함됩니다.이 옵션은 일부 플랫폼에서만 사용 가능하며, 현재 시스템에서 지원되지 않으면 아무런 작업을 수행하지 않습니다. 또한
PYTHON_DISABLE_REMOTE_DEBUG및 :pep:`768`도 참고하십시오.Added in version 3.14.
-X cpu_count=n는os.cpu_count(),os.process_cpu_count(), 및multiprocessing.cpu_count()를 재정의합니다. n 은 1보다 크거나 같아야 합니다. 이 옵션은 컨테이너 시스템의 CPU 자원을 제한해야 하는 사용자에게 유용할 수 있습니다. 또한PYTHON_CPU_COUNT도 참고하십시오. n 이default인 경우, 아무것도 재정의되지 않습니다.Added in version 3.13.
-X presite=module또는-X presite=module:func`는 :mod:`site모듈이 실행되기 전과__main__모듈이 존재하기 전에 실행되어야 하는 진입점을 지정합니다. 따라서 임포트된 모듈은__main__`이 아닙니다. 이는 파이썬 초기화 중 코드를 일찍 실행하는 데 사용될 수 있습니다. 이 옵션이 존재하려면 파이썬이 :ref:`디버그 모드로 내장되어야 합니다. 또한 :envvar:`PYTHON_PRESITE`도 참고하십시오.버전 3.15에서 변경: 또한
module:func진입점 형식을 허용합니다.Added in version 3.13.
-X gil=0,1`은 GIL을 각각 비활성화하거나 활성화하도록 강제합니다. ``0``으로 설정하는 것은 :option:–disable-gil`로 구성된 빌드에서만 사용할 수 있습니다. 또한PYTHON_GIL및 :ref:`whatsnew313-free-threaded-cpython`도 참고하십시오.Added in version 3.13.
-X thread_inherit_context=0,1는Thread가Thread.start()의 호출자의 컨텍스트 사본을 기본으로 사용하도록 만듭니다. 그렇지 않으면 스레드는 빈 컨텍스트로 시작합니다. 설정하지 않으면, 이 옵션의 값은 자유 스레딩 빌드에서1의 기본값을 사용하고, 그렇지 않으면0의 기본값을 사용합니다. 또한PYTHON_THREAD_INHERIT_CONTEXT도 참고하십시오.Added in version 3.14.
-X context_aware_warnings=0,1는warnings.catch_warnings컨텍스트 관리자가 경고 필터 상태를 저장하기 위해ContextVar를 사용하도록 만듭니다. 설정하지 않으면, 이 옵션의 값은 자유 스레딩 빌드에서1의 기본값을 사용하고, 그렇지 않으면0의 기본값을 사용합니다. 또한PYTHON_CONTEXT_AWARE_WARNINGS도 참고하십시오.Added in version 3.14.
-X pathconfig_warnings=0,1`가 true인 경우 (``1`), sys-path-init`을 사용하여 stderr에 경고를 기록할 수 있도록 허용합니다. false인 경우 (``0`) 이러한 경고가 억제됩니다. 기본적으로 true로 설정됩니다. 또한 :envvar:`PYTHON_PATHCONFIG_WARNINGS`도 참조하십시오.Added in version 3.15.
-X tlbc=0,1`는 :option:–disable-gil`로 구성된 빌드에서 스레드별 바이트코드를 활성화 (1, 기본값)하거나 비활성화 (0)합니다. 비활성화되면, 특수화된 인터프리터도 비활성화됩니다. 또한 :envvar:`PYTHON_TLBC`도 참조하십시오.Added in version 3.14.
-X lazy_imports=all,normal`는 지연 로딩 임포트 동작을 제어합니다. ``all``은 모든 임포트를 기본적으로 지연 로딩하게 만들고, ``normal`(기본값)은 소스 코드의lazy키워드를 존중합니다. 또한 :envvar:`PYTHON_LAZY_IMPORTS`도 참조하십시오.Added in version 3.15.
또한
sys._xoptions딕셔너리를 통해 임의의 값을 전달하고 조회할 수 있도록 합니다.Added in version 3.2.
버전 3.9에서 변경:
-X showalloccount옵션을 제거했습니다.버전 3.10에서 변경:
-X oldparser옵션을 제거했습니다.
Removed in version 3.14: -J 는 더 이상 Jython 에서 사용을 위해 예약되지 않았으며, 더 이상 특별한 의미가 없습니다.
1.1.4. 색상 제어¶
The Python interpreter is configured by default to use colors to highlight output in certain situations such as when displaying tracebacks. This behavior can be controlled by setting different environment variables.
환경 변수 TERM 을 dumb 으로 설정하면 색상 기능이 비활성화됩니다.
FORCE_COLOR 환경 변수가 설정된 경우, TERM의 값과 관계없이 색상이 활성화됩니다. 이는 터미널은 아니지만 ANSI 이스케이프 시퀀스를 표시할 수 있는 CI 시스템에서 유용합니다.
NO_COLOR 환경 변수가 설정된 경우, Python은 출력의 모든 색상을 비활성화합니다. 이는 FORCE_COLOR 보다 우선합니다.
이 모든 환경 변수는 다른 도구들도 색상 출력을 제어하는 데 사용됩니다. Python 인터프리터 내에서만 색상 출력을 제어하려면 PYTHON_COLORS 환경 변수를 사용할 수 있습니다. 이 변수는 NO_COLOR 보다 우선하며, NO_COLOR 는 다시 FORCE_COLOR 보다 우선합니다.
1.2. 환경 변수¶
이 환경 변수들은 파이썬의 동작에 영향을 주며, -E와 -I 이외의 명령 줄 스위치보다 먼저 처리됩니다. 충돌하면 명령 줄 스위치가 환경 변수에 우선하는 것이 관례입니다.
- PYTHONHOME¶
표준 파이썬 라이브러리의 위치를 변경합니다. 기본적으로, 라이브러리는
prefix/lib/pythonversion과exec_prefix/lib/pythonversion에서 검색되는데,prefix와exec_prefix는 설치 의존적인 디렉터리이고, 둘 다 기본값은/usr/local입니다.PYTHONHOME이 하나의 디렉터리로 설정되면, 그 값은prefix와exec_prefix를 모두 대체합니다. 이들에 대해 다른 값을 지정하려면,PYTHONHOME을prefix:exec_prefix로 설정하십시오.
- PYTHONPATH¶
모듈 파일의 기본 검색 경로를 보강합니다. 형식은 셸의
PATH와 같습니다: 하나 이상의 디렉터리 경로명이os.pathsep(예를 들어, 유닉스에서는 콜론, 윈도우에서는 세미콜론) 로 구분됩니다. 존재하지 않는 디렉터리는 조용히 무시됩니다.일반 디렉터리 외에도, 개별
PYTHONPATH엔트리는 순수 파이썬 모듈(소스 또는 컴파일된 형식)을 포함하는 zip 파일을 가리킬 수 있습니다. 확장 모듈은 zip 파일에서 임포트될 수 없습니다.기본 검색 경로는 설치 의존적이지만, 일반적으로
prefix/lib/pythonversion으로 시작합니다 (위의PYTHONHOME을 참조하세요). 항상PYTHONPATH에 추가됩니다.위에서 설명한 대로 인터페이스 옵션 하에서는
PYTHONPATH앞에 검색 경로에 추가 디렉터리가 삽입됩니다. 검색 경로는 파이썬 프로그램 내에서sys.path변수로 조작할 수 있습니다.
- PYTHONSAFEPATH¶
비어 있지 않은 문자열로 설정하면, 잠재적으로 안전하지 않은 경로를
sys.path앞에 추가하지 않습니다: 자세한 내용은-P옵션을 참조하십시오.Added in version 3.11.
- PYTHONPLATLIBDIR¶
이것을 비어 있지 않은 문자열로 설정하면,
sys.platlibdir값을 재정의합니다.Added in version 3.9.
- PYTHONSTARTUP¶
이것이 읽을 수 있는 파일의 이름이면, 첫 번째 프롬프트가 대화형 모드에 표시되기 전에, 해당 파일의 파이썬 명령이 실행됩니다. 이 파일은 대화형 명령이 실행되는 것과 같은 이름 공간에서 실행되므로, 여기에서 정의되거나 임포트 한 객체를 대화형 세션에서 그대로 사용할 수 있습니다. 이 파일에서 프롬프트
sys.ps1과sys.ps2와 훅sys.__interactivehook__도 바꿀 수 있습니다.시작 시 호출될 때 filename을 인자로 감사 이벤트(auditing event)
cpython.run_startup을 발생시킵니다.
- PYTHONBREAKPOINT¶
설정되면, 점으로 구분된 경로 표기법을 사용하여 콜러블의 이름을 지정합니다. 콜러블을 포함하는 모듈이 임포트 된 후에 콜러블은, 내장
breakpoint()에 의해 호출되는sys.breakpointhook()의 기본 구현이 실행합니다. 설정되지 않았거나 빈 문자열로 설정하면, 값 “pdb.set_trace”와 동등합니다. 문자열 “0”으로 설정하면,sys.breakpointhook()의 기본 구현은 아무것도 하지 않고 즉시 반환합니다.Added in version 3.7.
- PYTHONDEBUG¶
비어 있지 않은 문자열로 설정하면,
-d옵션을 지정하는 것과 같습니다. 정수로 설정하면,-d를 여러 번 지정하는 것과 같습니다.이 환경 변수는 :ref:`<debug-build>`의 Python 디버그 빌드가 필요하며, 그렇지 않으면 무시됩니다.
- PYTHONINSPECT¶
비어 있지 않은 문자열로 설정하면,
-i옵션을 지정하는 것과 같습니다.이 변수는 프로그램 종료 시 검사 모드를 강제하기 위해,
os.environ을 사용해서 파이썬 코드에 의해 수정될 수도 있습니다.인자 없이 감사 이벤트(auditing event)
cpython.run_stdin을 발생시킵니다.버전 3.12.5에서 변경: (3.11.10, 3.10.15, 3.9.20, 및 3.8.20) 감사 이벤트를 방출합니다.
버전 3.13에서 변경: 가능한 경우 PyREPL을 사용하며, 이 경우 :envvar:`PYTHONSTARTUP`도 실행됩니다. 감사 이벤트를 방출합니다.
- PYTHONDONTWRITEBYTECODE¶
비어 있지 않은 문자열로 설정되면, 파이썬은 소스 모듈을 임포트 할 때
.pyc파일을 쓰지 않습니다. 이는-B옵션을 지정하는 것과 같습니다.
- PYTHONPYCACHEPREFIX¶
설정되면, 파이썬은 소스 트리 내의
__pycache__디렉터리 대신에 이 경로에 있는 미러 디렉터리 트리에.pyc파일을 씁니다. 이것은-Xpycache_prefix=PATH옵션을 지정하는 것과 동등합니다.Added in version 3.8.
- PYTHONHASHSEED¶
이 변수가 설정되어 있지 않거나
random으로 설정되면, str과 bytes 객체의 해시 시드에 난수가 사용됩니다.PYTHONHASHSEED가 정숫값으로 설정되면, 해시 무작위화가 적용되는 형의 hash()를 생성하기 위한 고정 시드로 사용됩니다.목적은 인터프리터 자체에 대한 셀프 테스트와 같은 이유로 반복 가능한 해싱을 허용하거나, 파이썬 프로세스 클러스터가 해시값을 공유하도록 허용하는 것입니다.
정수는 [0,4294967295] 범위의 십진수여야 합니다. 값 0을 지정하면 해시 무작위화가 비활성화됩니다.
Added in version 3.2.3.
- PYTHONINTMAXSTRDIGITS¶
이 변수가 정수로 설정된 경우, 인터프리터의 전역 :ref:`정수 문자열 변환 길이 제한 <int_max_str_digits>`을 구성하는 데 사용됩니다.
Added in version 3.11.
- PYTHONIOENCODING¶
인터프리터를 실행하기 전에 이것이 설정되면, stdin/stdout/stderr에 사용되는 인코딩을 대체합니다. 문법은
encodingname:errorhandler형식입니다.encodingname과:errorhandler부분은 모두 선택 사항이며str.encode()에서와 같은 의미입니다.stderr의 경우,
:errorhandler부분은 무시됩니다; 처리기는 항상'backslashreplace'입니다.버전 3.4에서 변경:
encodingname부분은 이제 선택적입니다.버전 3.6에서 변경: Windows에서,
PYTHONLEGACYWINDOWSSTDIO도 지정하지 않는 한, 대화형 콘솔 버퍼에서 이 변수로 지정된 인코딩이 무시됩니다. 표준 스트림을 통해 리디렉션 된 파일과 파이프는 영향을 받지 않습니다.
- PYTHONNOUSERSITE¶
이는
-s옵션과 동일합니다. 이것이 설정되면 Python은 :data:`user site-packages 디렉터리 <site.USER_SITE>`를 :data:`sys.path`에 추가하지 않습니다.더 보기
PEP 370 – 사용자별 site-packages 디렉터리
- PYTHONUSERBASE¶
사용자 베이스 디렉터리를 정의합니다. 이 디렉터리는python -m pip install --user에서사용자 site-packages 디렉터리의 경로와 설치 경로 를 계산하는 데 사용됩니다.사용자 site-packages를 비활성화하려면
PYTHONNOUSERSITE또는-s옵션을 참조하십시오.더 보기
PEP 370 – 사용자별 site-packages 디렉터리
- PYTHONEXECUTABLE¶
이 환경 변수가 설정되면,
sys.argv[0]는 C 런타임을 통해 얻은 값 대신에 이 값으로 설정됩니다. macOS에서만 작동합니다.
- PYTHONWARNINGS¶
-W옵션과 동등합니다. 쉼표로 구분된 문자열로 설정하면,-W를 여러 번 지정하는 것과 같습니다. 목록의 뒷부분에 있는 필터는 목록의 이전 필터보다 우선합니다.가장 단순한 설정은 프로세스가 만드는 모든 경고에 무조건 특정 액션을 적용합니다 (그렇지 않으면 기본적으로 무시되는 경고조차도):
PYTHONWARNINGS=default # 호출 위치마다 한 번 경고합니다 PYTHONWARNINGS=error # 예외로 변환합니다 PYTHONWARNINGS=always # 매번 경고합니다 PYTHONWARNINGS=all # PYTHONWARNINGS=always 와 같습니다 PYTHONWARNINGS=module # 호출하는 모듈마다 한 번 경고합니다 PYTHONWARNINGS=once # 파이썬 프로세스마다 한 번 경고합니다 PYTHONWARNINGS=ignore # 경고하지 않습니다
자세한 내용은 경고 필터와 경고 필터 설명를 참조하십시오.
버전 3.15에서 변경: message 및 module 에 대한 정규식 지원을 추가했습니다.
- PYTHONFAULTHANDLER¶
이 환경 변수가 비어 있지 않은 문자열로 설정되면,
faulthandler.enable()이 시작 시에 호출됩니다: 파이썬 트레이스백을 덤프하는SIGSEGV,SIGFPE,SIGABRT,SIGBUS그리고SIGILL시그널 처리기를 설치합니다. 이는-Xfaulthandler옵션과 동등합니다.Added in version 3.3.
- PYTHONTRACEMALLOC¶
이 환경 변수가 비어 있지 않은 문자열로 설정되면,
tracemalloc모듈을 사용하여 파이썬 메모리 할당 추적을 시작합니다. 변수의 값은 추적의 트레이스백에 저장되는 최대 프레임 수입니다. 예를 들어,PYTHONTRACEMALLOC=1은 가장 최근의 프레임만을 저장합니다. 자세한 정보는tracemalloc.start()함수를 참조하십시오. 이는-Xtracemalloc옵션을 설정하는 것과 동등합니다.Added in version 3.4.
- PYTHONPROFILEIMPORTTIME¶
이 환경 변수가
1``로 설정되면 Python은 각 임포트가 얼마나 오랜 시간이 걸리는지 표시합니다. ``2``로 설정되면, 이미 로드된 임포트된 모듈에 대한 출력도 포함합니다. 이는 :option:`-X` ``importtime옵션을 설정하는 것과 동일합니다.Added in version 3.7.
버전 3.14에서 변경: 또한 로드된 모듈의 임포트 추적을 위해
PYTHONPROFILEIMPORTTIME=2를 추가했습니다.
- PYTHONMALLOC¶
파이썬 메모리 할당자를 설정하거나 디버그 훅을 설치합니다.
파이썬이 사용하는 메모리 할당자를 설정합니다:
default: 기본 메모리 할당자 를 사용합니다.malloc: 모든 영역(PYMEM_DOMAIN_RAW,PYMEM_DOMAIN_MEM,PYMEM_DOMAIN_OBJ)에서 C 라이브러리의malloc()함수를 사용합니다.pymalloc:PYMEM_DOMAIN_MEM과PYMEM_DOMAIN_OBJ영역에서 pymalloc 할당자 를 사용하고,PYMEM_DOMAIN_RAW영역에서malloc()함수를 사용합니다.mimalloc:PYMEM_DOMAIN_MEM과PYMEM_DOMAIN_OBJ영역에서 mimalloc 할당자 를 사용하고,PYMEM_DOMAIN_RAW영역에서malloc()함수를 사용합니다.
디버그 훅 설치:
debug: 기본 메모리 할당자 위에 디버그 훅을 설치합니다.malloc_debug:malloc과 같지만, 디버그 훅도 설치합니다.pymalloc_debug:pymalloc과 같지만, 디버그 훅도 설치합니다.mimalloc_debug:mimalloc과 같지만, 디버그 훅도 설치합니다.
참고
free-threaded 빌드에서는
malloc_,malloc_debug,pymalloc_,pymalloc_debug값을 지원하지 않습니다.default,debug,mimalloc_,mimalloc_debug만 허용됩니다.Added in version 3.6.
버전 3.7에서 변경:
"default"할당자를 추가했습니다.
- PYTHONMALLOCSTATS¶
비어 있지 않은 문자열로 설정되면, Python은 새로운 객체 아레나가 생성될 때마다, 그리고 종료할 때 pymalloc 메모리 할당자 또는 mimalloc 메모리 할당자 (사용되는 것)의 통계를 인쇄합니다.
이 변수는
PYTHONMALLOC환경 변수가 C 라이브러리의malloc()할당자를 사용하도록 강제하거나, Python이pymalloc``과 ``mimalloc지원 없이 구성된 경우 무시됩니다.버전 3.6에서 변경: 이 변수는 이제 배포 모드로 컴파일된 파이썬에서도 사용할 수 있습니다. 이제 빈 문자열로 설정하면 효과가 없습니다.
- PYTHON_PYMALLOC_HUGEPAGES¶
0이 아닌 정수로 설정되면, pymalloc 아레나에 대한 대규모 페이지 지원을 활성화합니다. 비활성화하려면
0으로 설정하거나 설정하지 마십시오. 이 변수가 효과를 가지려면 Python은--with-pymalloc-hugepages로 컴파일되어야 합니다.활성화되면, 아레나 할당은
MAP_HUGETLB(Linux) 또는MEM_LARGE_PAGES(Windows)를 사용하며, 대규모 페이지를 사용할 수 없는 경우 일반 페이지로 자동 폴백됩니다.경고
리눅스에서 휴지 페이지 풀이 고갈되면,
os.fork()에 의해 트리거된 copy-on-write 폴트 등의 페이지 폴트가SIGBUS를 전달하고 프로세스를 종료합니다. 이 기능은 휴지 페이지 풀이 적절하게 크기가 지정되었고 포크 안전성이 문제가 아닌 환경에서만 활성화해야 합니다.Windows에서는 특별한 권한이 필요합니다. 자세한 내용은 `Windows documentation for large pages <https://learn.microsoft.com/windows/win32/memory/large-page-support>`_을 참조하십시오. 사용자가 필요한 권한인 `SeLockMemoryPrivilege <https://learn.microsoft.com/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/lock-pages-in-memory>`_를 보유하고 있지 않으면 파이썬이 시작 시 실패합니다.
Added in version 3.15.
- PYTHONLEGACYWINDOWSFSENCODING¶
비어 있지 않은 문자열로 설정하면, 기본 파일 시스템 인코딩과 에러 처리기 모드를 3.6 이전의 값인 ‘mbcs’와 ‘replace’로 각각 되돌립니다. 그렇지 않으면, 새 기본값 ‘utf-8’과 ‘surrogatepass’가 사용됩니다.
가용성: Windows.
Added in version 3.6: 자세한 내용은 PEP 529를 참조하십시오.
- PYTHONLEGACYWINDOWSSTDIO¶
비어 있지 않은 문자열로 설정하면, 새 콘솔 입력기와 출력기를 사용하지 않습니다. 이것은 유니코드 문자가 utf-8을 사용하는 대신 활성 콘솔 코드 페이지에 따라 인코딩됨을 의미합니다.
이 변수는 표준 스트림이 콘솔 버퍼를 참조하는 대신 리디렉트 된 (파일 또는 파이프로) 경우 무시됩니다.
가용성: Windows.
Added in version 3.6.
- PYTHONCOERCECLOCALE¶
값
0으로 설정하면, 주 파이썬 명령 줄 응용 프로그램이 레거시 ASCII 기반 C와 POSIX 로케일을 보다 유능한 UTF-8 기반 대안으로 강제 변환하지 않습니다.이 변수가 설정되지 않고 (또는
0이외의 값으로 설정되고), 환경 변수에 우선하는LC_ALL로케일도 설정되지 않고,LC_CTYPE범주에 대해 보고되는 현재 로케일이 기본C로케일이거나 명시적인 ASCII 기반의POSIX로케일이면, 파이썬 CLI는 인터프리터 런타임을 로드하기 전에LC_CTYPE범주에 대해 다음 로케일을 나열된 순서대로 구성하려고 시도합니다:C.UTF-8C.utf8UTF-8
이러한 로케일 범주 중 하나를 설정하는 데 성공하면, 파이썬 런타임이 초기화되기 전에
LC_CTYPE환경 변수도 현재 프로세스 환경에서 적절히 설정됩니다. 이렇게 하면 인터프리터 자신과 같은 프로세스에서 실행되는 다른 로케일 인식 구성 요소(가령 GNUreadline라이브러리)가 볼 수 있는 것에 더해, 갱신된 설정을 현재 C 로케일이 아닌 환경을 조회하는 연산(가령 파이썬 자체의locale.getdefaultlocale())뿐만 아니라, 자식 프로세스에서도 (이 프로세스가 파이썬 인터프리터를 실행하는지에 관계없이) 볼 수 있습니다.이러한 로케일 중 하나를 구성하면 (명시적으로나 위의 묵시적 로케일 강제 변경을 통해)
sys.stdin과sys.stdout에 대해surrogateescape에러 처리기 를 자동으로 활성화합니다 (sys.stderr는 다른 로케일에서처럼backslashreplace를 계속 사용합니다). 이 스트림 처리 동작은 평소처럼PYTHONIOENCODING을 사용하여 대체할 수 있습니다.디버깅을 위해,
PYTHONCOERCECLOCALE=warn을 설정하면, 로케일 강제 변경이 일어나거나, 그렇지 않고 강제 변경을 유발할 로케일이 파이썬 런타임이 초기화될 때 여전히 활성 상태면 파이썬은stderr로 경고 메시지를 보냅니다.또한, 로케일 강제 변환이 비활성화되거나 적절한 대상 로케일을 찾지 못할 때도, 레거시 ASCII 기반 로케일에서
PYTHONUTF8은 기본적으로 활성화됨에 유의하십시오. 인터프리터가 시스템 인터페이스에 대해UTF-8대신에ASCII를 사용하게 하려면, 두 가지 기능을 모두 비활성화시켜야 합니다.가용성: Unix.
Added in version 3.7: 자세한 내용은 PEP 538을 참조하십시오.
- PYTHONDEVMODE¶
이 환경 변수가 비어 있지 않은 문자열로 설정되면, 파이썬 개발 모드를 활성화하여, 기본적으로 활성화하기에는 너무 비싼 추가 실행 시간 검사를 도입합니다. 이는
-Xdev옵션을 설정하는 것과 동등합니다.Added in version 3.7.
- PYTHONUTF8¶
1로 설정하면 :ref:`Python UTF-8 Mode <utf8-mode>`가 활성화됩니다.
0으로 설정하면 :ref:`Python UTF-8 Mode <utf8-mode>`가 비활성화됩니다.
다른 모든 비어 있지 않은 문자열로 설정하면, 인터프리터를 초기화하는 동안 에러가 발생합니다.
Added in version 3.7.
- PYTHONWARNDEFAULTENCODING¶
환경 변수가 비어 있지 않은 문자열로 설정된 경우, 로케일별 기본 인코딩이 사용될 때 :class:`EncodingWarning`을 발생시킵니다.
자세한 내용은 :ref:`io-encoding-warning`을 참조하십시오.
Added in version 3.10.
- PYTHONNODEBUGRANGES¶
이 변수가 설정되면 코드 객체의 모든 명령어에 추가적인 위치 정보(끝 라인, 시작 열 오프셋, 끝 열 오프셋)를 매핑하는 것을 비활성화합니다. 이는 더 작은 코드 객체와 pyc 파일이 필요할 때 유용하며, 인터프리터가 트레이스백을 표시할 때 추가적인 시각적 위치 표시를 억제합니다.
Added in version 3.11.
- PYTHONPERFSUPPORT¶
이 변수가 0이 아닌 값으로 설정되면, 리눅스
perf프로파일러에 대한 지원이 활성화되어 파이썬 호출을 감지할 수 있습니다.0으로 설정하면 리눅스
perf프로파일러 지원이 비활성화됩니다.-X perf명령줄 옵션과 Python의 perf map 호환 프로파일러 지원도 참조하십시오.Added in version 3.12.
- PYTHON_PERF_JIT_SUPPORT¶
이 변수가 0이 아닌 값으로 설정되면, DWARF 정보를 사용하여 파이썬 호출을 감지할 수 있도록 리눅스
perf프로파일러 지원이 활성화됩니다.0으로 설정하면 리눅스
perf프로파일러 지원이 비활성화됩니다.-X perf_jit명령줄 옵션과 Python의 perf map 호환 프로파일러 지원도 참조하십시오.Added in version 3.13.
- PYTHON_DISABLE_REMOTE_DEBUG¶
이 변수가 비어 있지 않은 문자열로 설정되면, :pep:`768`에 설명된 원격 디버깅 기능이 비활성화됩니다. 여기에는 다른 프로세스에서 코드를 예약 실행하는 기능과 현재 프로세스에서 실행할 코드를 수신하는 기능이 모두 포함됩니다.
-X disable_remote_debug명령줄 옵션도 참조하십시오.Added in version 3.14.
- PYTHON_CPU_COUNT¶
이 변수가 양의 정수로 설정되면,
os.cpu_count()및 :func:`os.process_cpu_count`의 반환 값을 재정의합니다.-X cpu_count명령줄 옵션도 참조하십시오.Added in version 3.13.
- PYTHON_FROZEN_MODULES¶
이 변수가
on또는off``로 설정되면, 임포트 메커니즘에 의해 동결된 모듈이 무시되는지 여부를 결정합니다. ``on값은 임포트되고off값은 무시됩니다. 기본값은 디버그 빌드의 경우 off`이고(일반적인 경우) 디버그 빌드의 경우 `on`입니다. :mod:!importlib_bootstrap` 및importlib_bootstrap_external동결 모듈은 이 플래그가 `off`로 설정된 경우에도 항상 사용된다는 점에 유의하십시오.-X frozen_modules명령줄 옵션도 참조하십시오.Added in version 3.13.
- PYTHON_COLORS¶
이 변수가 1로 설정되면 인터프리터가 다양한 종류의 출력을 색상화합니다. 이를 0으로 설정하면 이 동작이 비활성화됩니다. :ref:`using-on-controlling-color`도 참조하십시오.
Added in version 3.13.
- PYTHON_BASIC_REPL¶
이 변수가 어떤 값으로 설정되면, 인터프리터는 :mod:`readline`이 필요한 Python 기반의 :term:`REPL`을 로드하려고 시도하지 않으며, 대신 기존의 파서 기반 :term:`REPL`을 사용합니다.
Added in version 3.13.
- PYTHON_BASIC_COMPLETER¶
이 변수가 어떤 값으로 설정되면, PyREPL은 기본값(색상을 사용하는) 대신 :mod:`rlcompleter`를 사용하여 탭 완성을 구현합니다.
Added in version 3.15.
- PYTHON_HISTORY¶
이 환경 변수는
.python_history파일의 위치를 설정하는 데 사용될 수 있습니다 (기본적으로 사용자의 홈 디렉토리에 있는.python_history입니다).Added in version 3.13.
- PYTHON_GIL¶
이 변수가 1로 설정되면, 전역 인터프리터 잠금(GIL)이 강제됩니다. 0으로 설정하면 GIL이 해제됩니다 (파이썬이
--disable-gil빌드 옵션과 함께 구성되어야 합니다).또한, 우선순위를 가지는
-X gil명령줄 옵션과 :ref:`whatsnew313-free-threaded-cpython`도 참조하십시오.Added in version 3.13.
- PYTHON_THREAD_INHERIT_CONTEXT¶
이 변수가 1로 설정되면,
:option:-X thread_inherit_context<-X>`도 참조하십시오.Added in version 3.14.
- PYTHON_CONTEXT_AWARE_WARNINGS¶
만약
1로 설정되면,warnings.catch_warnings컨텍스트 관리자는 경고 필터 상태를 저장하기 위해ContextVar를 사용합니다. 이 변수가 설정되지 않은 경우, 이 변수는 자유 스레딩 빌드에서는1로 기본 설정되며, 그 외의 경우0으로 설정됩니다. 자세한 내용은-X context_aware_warnings를 참조하십시오.Added in version 3.14.
- PYTHON_PATHCONFIG_WARNINGS¶
만약 true (
1)이면 sys-path-init`에 stderr로 경고를 기록하는 것이 허용됩니다. false (``0`)이면 이러한 경고가 억제됩니다. 기본값은 true입니다. 또한 :option:`-X pathconfig_warnings<-X>`를 참조하십시오.Added in version 3.15.
- PYTHON_JIT¶
실험적인 Just-In-Time 컴파일이 사용 가능한 빌드에서는 이 변수를 사용하여 인터프리터 시작 시 JIT를 비활성화(
0)하거나 활성화(1)하도록 강제할 수 있습니다.Added in version 3.13.
- PYTHON_TLBC¶
1로 설정하면 스레드 로컬 바이트코드가 활성화됩니다.0로 설정하면 스레드 로컬 바이트코드와 전문화된 인터프리터가 비활성화됩니다.--disable-gil로 구성된 빌드에만 적용됩니다.-X tlbc명령줄 옵션도 참조하십시오.Added in version 3.14.
- PYTHON_LAZY_IMPORTS¶
지연 로딩(Lazy import) 동작을 제어합니다. 다음 두 가지 값 중 하나를 허용합니다:
all``은 모든 임포트를 기본적으로 지연시키며, ``normal``(기본값)은 소스 코드 내의 ``lazy키워드를 존중합니다.-X lazy_imports명령줄 옵션도 참조하십시오.Added in version 3.15.
1.2.1. 디버그 모드 변수¶
- PYTHONDUMPREFS¶
설정되면, 파이썬은 인터프리터를 종료한 후에도 살아있는 객체와 참조 횟수를 덤프합니다.
파이썬이
--with-trace-refs빌드 옵션으로 구성되었어야 합니다.
- PYTHONDUMPREFSFILE¶
설정되면, 파이썬은 인터프리터를 종료한 후에도 살아있는 객체와 참조 횟수를 이 환경 변수의 값으로 주어진 경로에 파일로 덤프합니다.
파이썬이
--with-trace-refs빌드 옵션으로 구성되었어야 합니다.Added in version 3.11.
- PYTHON_PRESITE¶
이 변수가 모듈로 설정되면, 해당 모듈은
site모듈이 실행되기 전에 및__main__모듈이 생성되기 전에 인터프리터 생명주기 초기에 임포트됩니다. 따라서 임포트된 모듈은 :mod:`__main__`으로 취급되지 않습니다.이것은 Python 초기화 과정 중에 코드를 조기에 실행하는 데 사용될 수 있습니다.
서브 모듈을 임포트하려면 가져오기 구문에서처럼
package.module을 값으로 사용하십시오.이 변수보다 우선순위가 높은
-X presite명령줄 옵션도 참조하십시오.파이썬이
--with-pydebug빌드 옵션으로 구성되었어야 합니다.버전 3.15에서 변경: 또한
module:func진입점 형식을 허용합니다.Added in version 3.13.