Python 규칙

<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> 문제 신고 소스 보기 1박 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

규칙

py_binary

<ph type="x-smartling-placeholder"></ph> 규칙 소스 보기
py_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_properties, features, imports, legacy_create_init, licenses, main, output_licenses, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyc_collection, python_version, restricted_to, srcs_version, stamp, tags, target_compatible_with, testonly, toolchains, visibility)

인수

속성
name

이름 필수

이 대상의 고유한 이름입니다.

deps

라벨 목록입니다. 기본값은 []입니다.

타겟에 연결할 추가 라이브러리 목록입니다. 일반적으로 규칙에 의해 정의되는 [`deps` 속성](https://bazel.build/reference/be/common-definitions#typical-attributes)에 관한 주석을 참고하세요. 이는 일반적으로 `py_library` 규칙입니다. 런타임에 사용되는 데이터 파일만 제공하는 타겟은 `data` 속성에 속합니다.
srcs

라벨 목록 필수

타겟을 만들기 위해 처리되는 Python 소스 파일 목록입니다. 여기에는 체크인된 모든 코드가 포함되며 생성된 소스 파일이 포함될 수도 있습니다. `.py` 파일은 `srcs`에 속하고 라이브러리 타겟은 `deps`에 속합니다. 런타임에 필요할 수 있는 다른 바이너리 파일은 `data`에 속합니다.
data

라벨 목록 기본값은 []입니다.

런타임에 이 라이브러리에 필요한 파일 목록입니다. 일반적으로 규칙에 의해 정의되는 [`data` 속성](https://bazel.build/reference/be/common-definitions#typical-attributes)에 관한 주석을 참고하세요. `cc_embed_data` 및 `go_embed_data` 가 있는 것처럼 `py_embed_data`는 없습니다. 이는 Python에 런타임 리소스 개념이 있기 때문입니다.
imports

문자열 목록입니다. 기본값은 []입니다.

PYTHONPATH에 추가할 가져오기 디렉터리의 목록입니다. 'Make 변수' 제목 있습니다. 이러한 가져오기 디렉터리는 이 규칙과 이 규칙에 종속된 모든 규칙에 추가됩니다(참고: 이 규칙에 종속된 규칙은 아님). `py_binary` 규칙에 따라 각 디렉터리가 `PYTHONPATH` 에 추가됩니다. 광고 항목을 만들 수 있습니다. 문자열은 repo-runfiles-root 상대 경로이며, 절대 경로(`/`로 시작하는 경로) 및 실행 루트 위의 경로를 참조하는 경로는 허용되지 않으며 오류가 발생합니다.
legacy_create_init

정수, 기본값은 -1

runfiles 트리에 빈 `__init__.py` 파일을 암시적으로 만들지 여부입니다. 이는 Python 소스 코드 또는 공유 라이브러리가 포함된 모든 디렉터리와 이러한 디렉터리의 모든 상위 디렉터리(저장소 루트 디렉터리 제외)에 생성됩니다. 기본값인 `-1`(자동)은 `--incompatible_default_to_explicit_init_py`가 사용되지 않는 한 true를 의미합니다. false인 경우 사용자는 `__init__.py` 파일을 만들고 (비어 있을 수 있음) 필요에 따라 Python 대상의 `srcs` 를 반환합니다.
main

라벨: 기본값은 None입니다.

선택사항입니다. 의 기본 진입점인 소스 파일의 이름입니다. 애플리케이션입니다. 이 파일은 `srcs`에도 나열되어야 합니다. 지정하지 않으면 대신 `.py`가 추가된 `name` 이 사용됩니다. `name` 이 `srcs`에 있는 파일 이름인 경우 `main` 을 지정해야 합니다.
precompile

문자열, 기본값은 "inherit"입니다.

**이 타겟의** py 소스 파일을 사전 컴파일해야 하는지 여부입니다. 값: * `inherit`: {flag}`--precompile` 플래그에서 값을 확인합니다. * `enabled`: 빌드 시간에 Python 소스 파일을 컴파일합니다. --precompile_add_to_runfiles는 컴파일된 파일이 다운스트림 바이너리에 포함되는 방식에 영향을 미칩니다. * `disable`: 빌드 시 Python 소스 파일을 컴파일하지 않습니다. * `if_generated_source`: 생성된 파일인 경우에만 Python 소스 파일을 컴파일합니다. :::{seealso} * 경우에 따라 이 속성을 재정의할 수 있는 {flag}`--precompile` 플래그 빌드할 때 모든 대상에 영향을 미칩니다. * 다음에서 사전 컴파일을 전이적으로 사용 설정하기 위한 {obj}`pyc_collection` 속성 사용할 수 있습니다 * 사전 컴파일 사용에 관한 가이드에 관한 [Precompiling](precompiling) 문서입니다. :::
precompile_invalidation_mode

String; 기본값은 "auto"입니다.

사전 컴파일된 파일이 관련 파일과 함께 최신 상태인지 확인하는 방법 소스 파일 가능한 값은 다음과 같습니다. * `auto`: 유효 값은 다른 빌드 설정에 의해 자동으로 결정됩니다. * `checked_hash`: 소스 파일의 해시가 pyc 파일에 기록된 해시와 일치하는 경우 pyc 파일을 사용합니다. 이는 수정할 수 있는 코드로 작업할 때 가장 유용합니다. * `unchecked_hash`: 항상 pyc 파일을 사용합니다. pyc의 해시를 소스 파일 이는 코드가 수정되지 않을 때 가장 유용합니다. pyc 무효화 모드에 관한 자세한 내용은 https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode를 참고하세요.
precompile_optimize_level

Integer; 기본값은 0입니다.

사전 컴파일된 파일의 최적화 수준입니다. 최적화 수준에 관한 자세한 내용은 https://docs.python.org/3/library/functions.html#compile의 `compile()` 함수의 `optimize` 인수 문서를 참고하세요. 참고: 값 `-1`은 '현재 인터프리터'를 의미하며, 이는 _pycs가 생성될 때 빌드 시간에_ 사용되는 인터프리터가 아니라 코드가 실제로 실행될 때 런타임에 사용되는 인터프리터가 아닙니다.
precompile_source_retention

문자열, 기본값은 "inherit"입니다.

소스 파일이 컴파일되는 시점, 소스 파일이 유지되는지 여부를 결정합니다. 알 수 없습니다. 유효한 값은 다음과 같습니다. * `Inherit`: {flag}`--precompile_source_retention` 플래그의 값을 상속합니다. * `keep_source`: 원본 Python 소스를 포함합니다. * `omit_source`: 원본 py 소스를 포함하지 않습니다. * `omit_if_generated_source`: 일반 소스인 경우 원본 소스를 유지합니다. 생성된 파일인 경우에는 생략합니다.
pyc_collection

String; 기본값은 "inherit"입니다.

종속 항목의 pyc 파일을 수동으로 포함해야 하는지 여부를 결정합니다. 참고: 이 설정은 {flag}`--precompile_add_to_runfiles=decided_elsewhere`인 경우에만 유용합니다. 유효한 값은 다음과 같습니다. * `Inherit`: {flag}`--pyc_collection`의 값을 상속합니다. * `include_pyc`: 바이너리의 종속 항목에서 pyc 파일을 추가합니다( {obj}`PyInfo.transitive_pyc_files`. * `Disabled`: 종속 항목에서 pyc 파일을 명시적으로 추가하지 않습니다. 타겟이 pyc 파일을 runfiles의 일부로 포함하는 경우(예: {obj}`--precompile_add_to_runfiles=always` 사용 시) pyc 파일이 종속 항목에서 가져올 수 있습니다.
python_version

문자열, 기본값은 "PY3"입니다.

사용되지 않고 사용되지 않으며 아무 작업도 하지 않습니다.
srcs_version

String; 기본값은 "PY2AND3"입니다.

더 이상 사용되지 않으며 아무 작업도 수행하지 않습니다.
stamp

정수, 기본값은 -1

빌드 정보를 바이너리로 인코딩할지 여부입니다. 가능한 값은 다음과 같습니다. * `stamp = 1`: 항상 빌드 정보를 바이너리에 스탬프합니다. `--nostamp` 빌드. 이 설정은 포드를 중단시킬 가능성이 높으므로 바이너리 및 이에 종속된 모든 다운스트림 작업에 대한 원격 캐싱이 포함됩니다. * `stamp = 0`: 항상 빌드 정보를 상수 값으로 바꿉니다. 이렇게 하면 빌드 결과 캐싱이 향상됩니다. * `stamp = -1`: 빌드 정보의 임베딩은 `--[no]stamp` 플래그입니다. 스탬프 처리된 바이너리는 종속 항목이 변경되지 않는 한 다시 빌드되지 않습니다. 경고: 스탬핑은 캐시 적중을 줄여 빌드 성능에 해를 끼칠 수 있으므로 가능하면 피해야 합니다.

py_library

규칙 소스 보기
py_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, imports, licenses, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, restricted_to, srcs_version, tags, target_compatible_with, testonly, toolchains, visibility)
사용할 수 있는 Python 코드 라이브러리입니다. 기본 출력: * 입력 Python 소스 * 소스의 사전 컴파일된 아티팩트 참고: 사전 컴파일은 결과 런파일에 포함되는 기본 출력에 영향을 미칩니다. 다음의 사전 컴파일 관련 속성 및 플래그를 참조하세요. 자세히 알아보세요.

인수

속성
name

이름 필수

이 타겟의 고유한 이름입니다.

deps

라벨 목록입니다. 기본값은 []입니다.

대상에 연결할 추가 라이브러리의 목록입니다. 다음에 대한 댓글 보기: [`deps` 속성은 일반적으로 rules](https://bazel.build/reference/be/common-definitions#typical-attributes). 일반적으로 `py_library` 규칙입니다. 런타임에 사용되는 데이터 파일만 제공하는 대상은 `data` 속성
srcs

라벨 목록입니다. 기본값은 []입니다.

대상을 만들기 위해 처리되는 Python 소스 파일의 목록입니다. 이 체크인된 모든 코드가 포함되며 생성된 소스 파일이 포함될 수 있습니다. 이 `.py` 파일은 `srcs` 에 속하고 라이브러리 대상은 `deps`에 속합니다. 기타 바이너리 런타임에 필요할 수 있는 파일은 `data`에 속합니다.
data

라벨 목록입니다. 기본값은 []입니다.

런타임 시 이 라이브러리에 필요한 파일 목록입니다. 일반적으로 규칙에 의해 정의되는 [`data` 속성](https://bazel.build/reference/be/common-definitions#typical-attributes)에 관한 주석을 참고하세요. `cc_embed_data` 및 `go_embed_data`와 같은 `py_embed_data`는 없습니다. 이는 Python에 런타임 리소스 개념이 있기 때문입니다.
imports

문자열 목록입니다. 기본값은 []입니다.

PYTHONPATH에 추가할 가져오기 디렉터리의 목록입니다. '변수 만들기' 대체가 적용됩니다. 다음 가져오기 디렉터리가 추가됩니다. 이 규칙 및 해당 규칙에 종속되는 모든 규칙에 적용됩니다 (참고: 이 규칙에는 적용되지 않음). 영향을 미칩니다. `py_binary` 규칙에 따라 각 디렉터리가 `PYTHONPATH` 에 추가됩니다. 광고 항목을 만들 수 있습니다. 문자열은 repo-runfiles-root 상대입니다. 절대 경로 (`/`로 시작하는 경로) 및 경로를 참조하는 경로 허용되지 않으며 오류가 발생합니다.
precompile

문자열, 기본값은 "inherit"입니다.

**이 타겟의** py 소스 파일을 사전 컴파일해야 하는지 여부입니다. 값: * `inherit`: {flag}`--precompile` 플래그에서 값을 확인합니다. * `enabled`: 빌드 시간에 Python 소스 파일을 컴파일합니다. --precompile_add_to_runfiles는 컴파일된 파일이 다운스트림 바이너리에 포함되는 방식에 영향을 미칩니다. * `disable`: 빌드 시 Python 소스 파일을 컴파일하지 않습니다. * `if_generated_source`: 생성된 파일인 경우에만 Python 소스 파일을 컴파일합니다. :::{seealso} * 경우에 따라 이 속성을 재정의할 수 있는 {flag}`--precompile` 플래그 빌드할 때 모든 대상에 영향을 미칩니다. * 다음에서 사전 컴파일을 전이적으로 사용 설정하기 위한 {obj}`pyc_collection` 속성 사용할 수 있습니다 * 사전 컴파일 사용에 관한 가이드에 관한 [Precompiling](precompiling) 문서입니다. :::
precompile_invalidation_mode

String; 기본값은 "auto"입니다.

사전 컴파일된 파일이 관련 파일과 함께 최신 상태인지 확인하는 방법 소스 파일 가능한 값은 다음과 같습니다. * `auto`: 유효 값은 다른 빌드 설정에 의해 자동으로 결정됩니다. * `checked_hash`: 소스 파일의 해시가 pyc 파일에 기록된 해시와 일치하는 경우 pyc 파일을 사용합니다. 이는 수정할 수 있는 코드로 작업할 때 가장 유용합니다. * `unchecked_hash`: 항상 pyc 파일을 사용합니다. pyc의 해시를 소스 파일 이는 코드가 수정되지 않을 때 가장 유용합니다. pyc 무효화 모드에 관한 자세한 내용은 https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode를 참고하세요.
precompile_optimize_level

Integer; 기본값은 0입니다.

사전 컴파일된 파일의 최적화 수준입니다. 최적화 수준에 관한 자세한 내용은 https://docs.python.org/3/library/functions.html#compile의 `compile()` 함수의 `optimize` 인수 문서를 참고하세요. 참고: 값 `-1`은 '현재 인터프리터'를 의미하며, 이는 _pycs가 생성될 때 빌드 시간에_ 사용되는 인터프리터가 아니라 코드가 실제로 실행될 때 런타임에 사용되는 인터프리터가 아닙니다.
precompile_source_retention

문자열, 기본값은 "inherit"입니다.

소스 파일이 컴파일될 때 소스 파일이 결과 출력에 유지되는지 여부를 결정합니다. 유효한 값은 다음과 같습니다. * `Inherit`: {flag}`--precompile_source_retention` 플래그의 값을 상속합니다. * `keep_source`: 원본 Python 소스를 포함합니다. * `omit_source`: 원본 py 소스를 포함하지 않습니다. * `omit_if_generated_source`: 일반 소스인 경우 원본 소스를 유지합니다. 생성된 파일인 경우에는 생략합니다.
srcs_version

String; 기본값은 "PY2AND3"입니다.

더 이상 사용되지 않으며 아무 작업도 수행하지 않습니다.

py_test

<ph type="x-smartling-placeholder"></ph> 규칙 소스 보기
py_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, imports, legacy_create_init, licenses, local, main, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyc_collection, python_version, restricted_to, shard_count, size, srcs_version, stamp, tags, target_compatible_with, testonly, timeout, toolchains, visibility)

인수

속성
name

이름 필수

이 대상의 고유한 이름입니다.

deps

라벨 목록 기본값은 []입니다.

대상에 연결할 추가 라이브러리의 목록입니다. 일반적으로 규칙에 의해 정의되는 [`deps` 속성](https://bazel.build/reference/be/common-definitions#typical-attributes)에 관한 주석을 참고하세요. 일반적으로 `py_library` 규칙입니다. 런타임에 사용되는 데이터 파일만 제공하는 타겟은 `data` 속성에 속합니다.
srcs

라벨 목록 필수

대상을 만들기 위해 처리되는 Python 소스 파일의 목록입니다. 여기에는 체크인된 모든 코드가 포함되며 생성된 소스 파일이 포함될 수도 있습니다. `.py` 파일은 `srcs`에 속하고 라이브러리 타겟은 `deps`에 속합니다. 런타임에 필요할 수 있는 다른 바이너리 파일은 `data`에 속합니다.
data

라벨 목록입니다. 기본값은 []입니다.

런타임에 이 라이브러리에 필요한 파일 목록입니다. 일반적으로 규칙에 의해 정의되는 [`data` 속성](https://bazel.build/reference/be/common-definitions#typical-attributes)에 관한 주석을 참고하세요. `cc_embed_data` 및 `go_embed_data` 가 있는 것처럼 `py_embed_data`는 없습니다. 이는 Python에 런타임 리소스 개념이 있기 때문입니다.
imports

문자열 목록입니다. 기본값은 []입니다.

PYTHONPATH에 추가할 가져오기 디렉터리의 목록입니다. 'Make 변수' 제목 있습니다. 이러한 가져오기 디렉터리는 이 규칙과 이 규칙에 종속된 모든 규칙에 추가됩니다(참고: 이 규칙에 종속된 규칙은 아님). `py_binary` 규칙에 따라 각 디렉터리가 `PYTHONPATH` 에 추가됩니다. 광고 항목을 만들 수 있습니다. 문자열은 repo-runfiles-root 상대 경로이며, 절대 경로(`/`로 시작하는 경로) 및 실행 루트 위의 경로를 참조하는 경로는 허용되지 않으며 오류가 발생합니다.
legacy_create_init

정수, 기본값은 -1

runfiles 트리에 빈 `__init__.py` 파일을 암시적으로 만들지 여부입니다. 이는 Python 소스 코드 또는 공유 라이브러리가 포함된 모든 디렉터리와 이러한 디렉터리의 모든 상위 디렉터리(저장소 루트 디렉터리 제외)에 생성됩니다. 기본값 `-1` (자동)은 `--incompatible_default_to_explicit_init_py` 가 사용됩니다. false인 경우 사용자는 `__init__.py` 파일을 만들고 (비어 있을 수 있음) 필요에 따라 Python 대상의 `srcs` 를 반환합니다.
main

라벨: 기본값은 None입니다.

선택사항입니다. 의 기본 진입점인 소스 파일의 이름입니다. 애플리케이션입니다. 이 파일은 `srcs`에도 나열되어야 합니다. 지정하지 않으면 대신 `.py`가 추가된 `name` 이 사용됩니다. `name` 이 `srcs`에 있는 파일 이름이 있으면 `main` 을 지정해야 합니다.
precompile

문자열, 기본값은 "inherit"입니다.

**이 타겟의** py 소스 파일을 사전 컴파일해야 하는지 여부입니다. 값: * `inherit`: {flag}`--precompile` 플래그에서 값을 확인합니다. * `enabled`: 빌드 시간에 Python 소스 파일을 컴파일합니다. --precompile_add_to_runfiles는 컴파일된 파일이 다운스트림 바이너리에 포함되는 방식에 영향을 미칩니다. * `disable`: 빌드 시 Python 소스 파일을 컴파일하지 않습니다. * `if_generated_source`: 생성된 파일인 경우에만 Python 소스 파일을 컴파일합니다. :::{seealso} * 경우에 따라 이 속성을 재정의할 수 있는 {flag}`--precompile` 플래그 빌드할 때 모든 대상에 영향을 미칩니다. * 다음에서 사전 컴파일을 전이적으로 사용 설정하기 위한 {obj}`pyc_collection` 속성 사용할 수 있습니다 * 사전 컴파일 사용에 관한 가이드에 관한 [Precompiling](precompiling) 문서입니다. :::
precompile_invalidation_mode

String; 기본값은 "auto"입니다.

사전 컴파일된 파일이 관련 파일과 함께 최신 상태인지 확인하는 방법 소스 파일 가능한 값은 다음과 같습니다. * `auto`: 유효 값은 다른 빌드 설정에 의해 자동으로 결정됩니다. * `checked_hash`: 소스 파일의 해시가 pyc 파일에 기록된 해시와 일치하는 경우 pyc 파일을 사용합니다. 이는 수정할 수 있는 코드로 작업할 때 가장 유용합니다. * `unchecked_hash`: 항상 pyc 파일을 사용합니다. pyc의 해시를 소스 파일 이는 코드가 수정되지 않을 때 가장 유용합니다. pyc 무효화 모드에 관한 자세한 내용은 https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode를 참고하세요.
precompile_optimize_level

Integer; 기본값은 0입니다.

사전 컴파일된 파일의 최적화 수준입니다. 최적화 수준에 관한 자세한 내용은 https://docs.python.org/3/library/functions.html#compile의 `compile()` 함수의 `optimize` 인수 문서를 참고하세요. 참고: 값 `-1`은 '현재 인터프리터'를 의미하며, 이는 _pycs가 생성될 때 빌드 시간에_ 사용되는 인터프리터가 아니라 코드가 실제로 실행될 때 런타임에 사용되는 인터프리터가 아닙니다.
precompile_source_retention

문자열, 기본값은 "inherit"입니다.

소스 파일이 컴파일되는 시점, 소스 파일이 유지되는지 여부를 결정합니다. 알 수 없습니다. 유효한 값은 다음과 같습니다. * `Inherit`: {flag}`--precompile_source_retention` 플래그의 값을 상속합니다. * `keep_source`: 원본 Python 소스를 포함합니다. * `omit_source`: 원본 py 소스를 포함하지 않습니다. * `omit_if_generated_source`: 일반 소스인 경우 원본 소스를 유지합니다. 생성된 파일인 경우에는 생략합니다.
pyc_collection

String; 기본값은 "inherit"입니다.

종속 항목의 pyc 파일을 수동으로 포함해야 하는지 여부를 결정합니다. 참고: 이 설정은 {flag}`--precompile_add_to_runfiles=decided_elsewhere`인 경우에만 유용합니다. 유효한 값은 다음과 같습니다. * `Inherit`: {flag}`--pyc_collection`의 값을 상속합니다. * `include_pyc`: 바이너리의 종속 항목에서 pyc 파일을 추가합니다( {obj}`PyInfo.transitive_pyc_files`. * `Disabled`: 종속 항목에서 pyc 파일을 명시적으로 추가하지 않습니다. 타겟이 pyc 파일을 runfiles의 일부로 포함하는 경우(예: {obj}`--precompile_add_to_runfiles=always` 사용 시) pyc 파일이 종속 항목에서 가져올 수 있습니다.
python_version

문자열, 기본값은 "PY3"입니다.

사용되지 않고 사용되지 않으며 아무 작업도 하지 않습니다.
srcs_version

String; 기본값은 "PY2AND3"입니다.

비활성화되고 사용되지 않으며 아무 작업도 하지 않습니다.
stamp

정수, 기본값은 0입니다.

빌드 정보를 바이너리로 인코딩할지 여부입니다. 가능한 값: * `stamp = 1`: `--nostamp` 빌드에서도 항상 빌드 정보를 바이너리에 스탬프합니다. 바이너리 및 바이너리에 종속된 모든 다운스트림 작업의 원격 캐싱을 중지할 수 있으므로 **이 설정은 피해야 합니다**. * `stamp = 0`: 항상 빌드 정보를 상수 값으로 바꿉니다. 이를 통해 빌드 결과 캐싱이 잘 되어 있다고 가정해 보겠습니다 * `stamp = -1`: 빌드 정보 삽입은 `--[no]stamp` 플래그로 제어됩니다. 스탬프 처리된 바이너리는 종속 항목이 변경되지 않는 한 다시 빌드되지 않습니다. 경고: 스탬핑은 캐시 적중을 줄여 빌드 성능을 해칠 수 있으며, 피해야 할 수도 있습니다

py_runtime

<ph type="x-smartling-placeholder"></ph> 규칙 소스 보기
py_runtime(name, bootstrap_template, compatible_with, coverage_tool, deprecation, distribs, exec_compatible_with, exec_properties, features, files, implementation_name, interpreter, interpreter_path, interpreter_version_info, pyc_tag, python_version, restricted_to, stage2_bootstrap_template, stub_shebang, tags, target_compatible_with, testonly, toolchains, visibility, zip_main_template)
Python 코드를 실행하는 데 사용되는 Python 런타임을 나타냅니다. `py_runtime` 타겟은 *플랫폼 런타임* 또는 *빌드 내 런타임*을 나타낼 수 있습니다. 플랫폼 런타임은 알려진 엔드포인트에서 시스템이 설치한 인터프리터에 반면에 빌드 내 런타임은 통역해 줍니다 두 경우 모두 '인터프리터'는 표준 CPython 인터프리터와 동일한 규칙에 따라 명령줄에 전달된 Python 스크립트를 실행할 수 있는 실행 가능한 바이너리 또는 래퍼 스크립트를 의미합니다. 플랫폼 런타임은 본질적으로 비밀 유지가 불가능합니다. PersistentVolumeClaim에 인터프리터를 특정 경로에 위치하도록 합니다. 빌드 내 런타임은 다음을 가리키는지 여부에 따라 밀폐될 수도 있고 그렇지 않을 수도 있습니다. 시스템에 액세스하는 체크인 인터프리터 또는 래퍼 스크립트 통역해 줍니다. 예 ``` load("@rules_python//python:py_runtime.bzl", "py_runtime") py_runtime( name = "python-2.7.12", files = glob(["python-2.7.12/**"]), interpreter = "python-2.7.12/bin/python", ) py_runtime( name = "python-3.6.0", interpreter_path = "/opt/pyenv/versions/3.6.0/bin/python", ) ```

인수

속성
name

이름: 필수사항

이 대상의 고유한 이름입니다.

bootstrap_template

라벨 기본값은 "@rules_python//python/private:bootstrap_template"입니다.

사용할 부트스트랩 스크립트 템플릿 파일입니다. %python_binary%, %workspace_name%, %main%, %imports%가 있어야 합니다. 이 템플릿은 확장 후 즉, Compute Engine 가상 머신을 만드는 등 초기 부트스트랩 작업을 Python 인터프리터, 실행 파일, 애플리케이션을 실행할 환경 구축 등의 애플리케이션을 배포할 수 있습니다 이 속성은 현재 선택사항이지만 Python 규칙은 Bazel 자체 외부로 이동합니다. 확장된 정확한 변수 이름은 불안정한 API이며 변경될 수 있습니다. Python 규칙이 Bazel 자체에서 이동하면 API가 더 안정적으로 됩니다. 더 많은 변수는 @bazel_tools//tools/python:python_bootstrap_template.txt를 참고하세요.
coverage_tool

라벨: 기본값은 None입니다.

코드 적용 범위 정보를 수집할 때 사용할 타겟입니다. {rule}`py_binary` 및 {rule}`py_test` 대상. 설정된 경우 타겟은 단일 파일을 생성하거나 실행 가능한 타겟이어야 합니다. 단일 파일의 경로 또는 대상이 실행 파일인 경우 실행 파일의 경로에 따라 Python 적용 범위 도구의 진입점이 결정됩니다. 대상과 적용 범위가 사용 설정되면 runfile이 runfile에 추가됩니다. 도구의 진입점은 Python 인터프리터(예: `.py` 또는 `.pyc` 파일)에서 로드할 수 있어야 합니다. [`coverage.py`](https://coverage.readthedocs.io)의 명령줄 인수를 허용해야 하며, 여기에는 적어도 `run` 및 `lcov` 하위 명령어가 포함되어야 합니다.
files

라벨 목록입니다. 기본값은 []입니다.

빌드 내 런타임의 경우 이 런타임을 구성하는 파일 집합입니다. 이러한 파일은 이 파일을 사용하는 Python 바이너리의 실행 파일에 추가됩니다. 런타임 환경입니다 플랫폼 런타임의 경우 이 속성을 설정하면 안 됩니다.
implementation_name

String; 기본값은 ""입니다.

Python 구현 이름 (`sys.implementation.name`)
interpreter

라벨: 기본값은 None입니다.

빌드 내 런타임의 경우 인터프리터로 호출할 대상입니다. 그것은 다음 중 하나일 수 있습니다. * 인터프리터 바이너리가 되는 단일 파일입니다. 데이터 레이크는 인터프리터는 독립 실행형 단일 파일 실행 파일이거나 지원 파일은 `files`에 지정되어 있습니다. * 실행 가능한 대상. 대상의 실행 파일은 인터프리터 바이너리입니다. 다른 모든 기본 출력(`target.files`) 및 일반 파일 runfiles(`runfiles.files`)는 `files` 속성에 지정된 것처럼 자동으로 포함됩니다. 참고: 타겟의 실행 파일이 아직 제대로 적용/전파되지 않았을 수 있습니다. 툴체인/인터프리터의 소비자에게 제공하는 경우 bazelbuild/rules_python/issues/1612 플랫폼 런타임 (즉, `interpreter_path` 가 설정됨)의 경우 이 속성은 설정되어 있지 않습니다.
interpreter_path

String; 기본값은 ""입니다.

플랫폼 런타임의 경우 이는 Python 인터프리터의 절대 경로입니다. 대상 플랫폼입니다 빌드 내 런타임의 경우 이 속성을 설정하면 안 됩니다.
interpreter_version_info

사전: 문자열 -> 문자열, 기본값은 {}입니다.

이 런타임에서 제공하는 인터프리터에 관한 버전 정보입니다. 지정하지 않으면 {obj}`--python_version`을 사용합니다. 지원되는 키는 `sys.version_info`의 이름과 일치합니다. 입력 값은 문자열이지만 대부분 int로 변환됩니다. 지원되는 키는 다음과 같습니다. * main: int, 주 버전 번호 * small: int, 마이너 버전 번호 * micro: 선택적 int, 마이크로 버전 번호 * releaselevel: 선택적인 str, 출시 레벨 * serial: 선택적 int, 릴리스 일련번호 :::{versionChanged} 0.36.0 {obj}`--python_version` 이 기본값을 결정합니다. :::
pyc_tag

문자열, 기본값은 ""입니다.

선택적 문자열입니다. pyc 파일 이름의 태그 부분(예: `cpython-39` 중위 `foo.cpython-39.pyc`입니다. PEP 3147을 참고하세요. 지정하지 않으면 `implementation_name` 및 `interpreter_version_info`에서 계산됩니다. 사용 가능한 pyc_tag가 없으면 소스 없는 pyc 생성만 제대로 작동합니다.
python_version

String; 기본값은 "PY3"입니다.

이 런타임이 Python 메이저 버전 2 또는 3용인지 여부입니다. 유효한 값은 `"PY2"` 및 `"PY3"`입니다. 기본값은 `--incompatible_py3_is_default` 플래그로 제어됩니다. 하지만 앞으로 이 속성은 필수가 될 것이며 기본값이 없습니다. 값으로 사용됩니다.
stage2_bootstrap_template

라벨 기본값은 "@rules_python//python/private:stage2_bootstrap_template"입니다.

2단계 부트스트랩이 사용 설정된 경우 사용할 템플릿입니다. :::{seealso} {obj}`PyRuntimeInfo.stage2_bootstrap_template` 및 {obj}`--bootstrap_impl` :::
stub_shebang

문자열, 기본값은 "#!/usr/bin/env python3"입니다.

{rule}`py_binary` 타겟을 실행할 때 사용되는 부팅 시 Python 스텁 스크립트에 추가되는 'Shebang' 표현식입니다. 동기는 https://github.com/bazelbuild/bazel/issues/8685를 참고하세요. Windows에는 적용되지 않습니다.
zip_main_template

라벨 기본값은 "@rules_python//python/private:zip_main_template"입니다.

zip의 최상위 `__main__.py` 파일에 사용할 템플릿입니다. 이는 `python foo.zip`을 실행할 때 실행되는 진입점이 됩니다. :::{seealso} {obj}`PyRuntimeInfo.zip_main_template` 필드 :::