Python ルール

問題を報告する ソースを表示 Nightly · 8.0 . 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

ルール

py_binary

ルールソースを表示
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 に追加するインポート ディレクトリのリスト。「変数を作成」の置換の対象となります。これらのインポート ディレクトリは、このルールと、このルールに依存するすべてのルールに追加されます(注: このルールが依存するルールではありません。各ディレクトリは、このルールに依存する「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」にもリストに含める必要があります。指定しない場合、代わりに「name」に「.py」が追加されます。「name」が「srcs」内のファイル名と一致しない場合は、「main」を指定する必要があります。
precompile

文字列。デフォルトは "inherit" です。

**このターゲット** の py ソースファイルを事前コンパイルするかどうか。値: * inherit: 事前コンパイルされたファイルを使用するかどうかをダウンストリーム バイナリに決定させます。* 「enabled」: ビルド時に Python ソースファイルをコンパイルします。* disabled: ビルド時に Python ソースファイルをコンパイルしません。:::{seealso} * {flag}`--precompile` フラグ。場合によってはこの属性をオーバーライドし、ビルド時にすべてのターゲットに影響します。* ターゲットごとにプリコンパイルを伝播的に有効にする {obj}`pyc_collection` 属性。* [プリコンパイル](precompiling) のドキュメント: プリコンパイルの使用に関するガイド。:::
precompile_invalidation_mode

文字列。デフォルトは "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

整数。デフォルトは 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 ソースを含めないでください。
pyc_collection

文字列。デフォルトは "inherit" です。

依存関係の pyc ファイルを手動で含めるかどうかを決定します。有効な値は次のとおりです。 * `inherit`: {flag}`--precompile` から値を継承します。 * `include_pyc`: 依存関係から暗黙的に生成された pyc ファイルを追加します。つまり、{attr}`precompile="inherit"` を指定するターゲットの pyc ファイルです。 * `disabled`: 暗黙的に生成された pyc ファイルを追加しません。pyc ファイルは、ターゲット レベルでプリコンパイルを有効にする依存関係から引き続き取得される場合があります。
python_version

文字列。デフォルトは "PY3" です。

無効で、使用されておらず、何もしません。
srcs_version

文字列。デフォルトは "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 ソース * ソースから事前コンパイルされたアーティファクト注: 事前コンパイルは、生成されるランファイルに含まれるデフォルトの出力に影響します。詳細については、プリコンパイル関連の属性とフラグをご覧ください。:::{versionchanged} 0.37.0 ソースファイルは、ランファイルに直接追加されなくなりました。:::

引数

属性
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 に追加するインポート ディレクトリのリスト。「変数を作成」の置換の対象となります。これらのインポート ディレクトリは、このルールと、このルールに依存するすべてのルールに追加されます(注: このルールが依存するルールではありません。各ディレクトリは、このルールに依存する「py_binary」ルールによって「PYTHONPATH」に追加されます。文字列は repo-runfiles-root を基準としています。絶対パス(「/」で始まるパス)と、実行ルートより上のパスを参照するパスは許可されず、エラーが発生します。
precompile

文字列。デフォルトは "inherit" です。

**このターゲット** の py ソースファイルを事前コンパイルするかどうか。値: * inherit: 事前コンパイルされたファイルを使用するかどうかをダウンストリーム バイナリに決定させます。* 「enabled」: ビルド時に Python ソースファイルをコンパイルします。* disabled: ビルド時に Python ソースファイルをコンパイルしません。:::{seealso} * {flag}`--precompile` フラグ。場合によってはこの属性をオーバーライドし、ビルド時にすべてのターゲットに影響します。* ターゲットごとにプリコンパイルを伝播的に有効にする {obj}`pyc_collection` 属性。* [プリコンパイル](precompiling) のドキュメント: プリコンパイルの使用に関するガイド。:::
precompile_invalidation_mode

文字列。デフォルトは "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

整数。デフォルトは 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 ソースを含めないでください。
srcs_version

文字列。デフォルトは "PY2AND3" です。

無効で、使用されておらず、何もしません。

py_test

ルールソースを表示
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 に追加するインポート ディレクトリのリスト。「変数を作成」の置換の対象となります。これらのインポート ディレクトリは、このルールと、このルールに依存するすべてのルールに追加されます(注: このルールが依存するルールではありません。各ディレクトリは、このルールに依存する「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」にもリストに含める必要があります。指定しない場合、代わりに「name」に「.py」が追加されます。「name」が「srcs」内のファイル名と一致しない場合は、「main」を指定する必要があります。
precompile

文字列。デフォルトは "inherit" です。

**このターゲット** の py ソースファイルを事前コンパイルするかどうか。値: * inherit: 事前コンパイルされたファイルを使用するかどうかをダウンストリーム バイナリに決定させます。* 「enabled」: ビルド時に Python ソースファイルをコンパイルします。* disabled: ビルド時に Python ソースファイルをコンパイルしません。:::{seealso} * {flag}`--precompile` フラグ。場合によってはこの属性をオーバーライドし、ビルド時にすべてのターゲットに影響します。* ターゲットごとにプリコンパイルを伝播的に有効にする {obj}`pyc_collection` 属性。* [プリコンパイル](precompiling) のドキュメント: プリコンパイルの使用に関するガイド。:::
precompile_invalidation_mode

文字列。デフォルトは "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

整数。デフォルトは 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 ソースを含めないでください。
pyc_collection

文字列。デフォルトは "inherit" です。

依存関係の pyc ファイルを手動で含めるかどうかを決定します。有効な値は次のとおりです。 * `inherit`: {flag}`--precompile` から値を継承します。 * `include_pyc`: 依存関係から暗黙的に生成された pyc ファイルを追加します。つまり、{attr}`precompile="inherit"` を指定するターゲットの pyc ファイルです。 * `disabled`: 暗黙的に生成された pyc ファイルを追加しません。pyc ファイルは、ターゲット レベルでプリコンパイルを有効にする依存関係から引き続き取得される場合があります。
python_version

文字列。デフォルトは "PY3" です。

無効で、使用されておらず、何もしません。
srcs_version

文字列。デフォルトは "PY2AND3" です。

無効で、使用されておらず、何もしません。
stamp

整数。デフォルトは 0 です。

ビルド情報をバイナリにエンコードするかどうか。使用可能な値: * `stamp = 1`: `--nostamp` ビルドでも、ビルド情報を常にバイナリにスタンプします。この設定は、バイナリとそれに依存するダウンストリーム アクションのリモート キャッシュを破棄する可能性があるため、**避けるべき**です。* `stamp = 0`: ビルド情報は常に定数値に置き換えます。これにより、ビルド結果を適切にキャッシュに保存できます。* `stamp = -1`: ビルド情報の埋め込みは、`--[no]stamp` フラグによって制御されます。スタンプされたバイナリは、依存関係が変更されない限り再ビルドされません。警告: スタンプ処理は、キャッシュヒットを減らすことでビルドのパフォーマンスに悪影響を及ぼす可能性があるため、可能であれば避けてください。

py_runtime

ルールソースを表示
py_runtime(name, abi_flags, 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 スクリプトを実行できる実行可能バイナリまたはラッパー スクリプトです。プラットフォーム ランタイムは本質的に非気密です。ターゲット プラットフォームに、特定のパスにインタープリタが配置されていることが求められます。ビルドイン ランタイムは、チェックインされたインタープリタを指しているのか、システム インタープリタにアクセスするラッパー スクリプトを指しているのかによって、完全性保護されている場合とそうでない場合があります。例 ``` 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

名前: 必須

このターゲットの名前。

abi_flags

文字列。デフォルトは "" です。

ランタイムの ABI フラグ(sys.abiflags)。 設定されていない場合は、フラグに基づいて設定されます。
bootstrap_template

ラベル(デフォルトは "@rules_python//python/private:bootstrap_template"

使用するブートストラップ スクリプト テンプレート ファイル。%python_binary%、%workspace_name%、%main%、%imports% が必要です。このテンプレートは展開後にプロセスの開始に使用される実行可能ファイルになるため、Python インタープリタ、ランファイルの検索、目的の 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 カバレッジ ツールのエントリ ポイントが決まります。カバレッジが有効になっている場合、ターゲットとそのランファイルがランファイルに追加されます。ツールのエントリ ポイントは、Python インタープリタ(.py ファイルや .pyc ファイルなど)で読み込み可能である必要があります。少なくとも「run」サブコマンドと「lcov」サブコマンドを含む [`coverage.py`](https://coverage.readthedocs.io) のコマンドライン引数を受け入れるようにする必要があります。
files

ラベルのリスト。デフォルトは [] です。

ビルド内ランタイムの場合、これはこのランタイムを構成する一連のファイルです。これらのファイルは、このランタイムを使用する Python バイナリのランファイルに追加されます。プラットフォーム ランタイムの場合、この属性は設定しないでください。
implementation_name

文字列。デフォルトは "cpython" です。

Python 実装名(sys.implementation.name)
interpreter

ラベル(デフォルトは None

ビルドイン ランタイムの場合、これはインタープリタとして呼び出すターゲットです。次のいずれかになります。 * 単一ファイル(インタープリタ バイナリ)。このようなインタープリタは、自己完結型の単一ファイル実行可能ファイルであるか、サポート ファイルが「files」で指定されていると想定されます。 * 実行可能ターゲット。ターゲットの実行可能ファイルはインタープリタ バイナリになります。他のデフォルト出力(target.files)とプレーン ファイルの runfile(runfiles.files)は、files 属性で指定されている場合と同様に自動的に含まれます。注: ターゲットのランファイルが、ツールチェーン/インタープリタのコンシューマに適切に尊重/伝播されていない可能性があります。bazelbuild/rules_python/issues/1612 をご覧ください。プラットフォーム ランタイム(interpreter_path が設定されている場合)では、この属性を設定しないでください。
interpreter_path

文字列。デフォルトは "" です。

プラットフォーム ランタイムの場合、これはターゲット プラットフォーム上の Python インタープリタの絶対パスです。ビルドイン ランタイムの場合、この属性は設定しないでください。
interpreter_version_info

辞書: 文字列 -> 文字列。デフォルトは {} です。

このランタイムが提供するインタープリタのバージョン情報。指定しない場合、{obj}`--python_version` が使用されます。サポートされているキーは、`sys.version_info` の名前と一致します。入力値は文字列ですが、ほとんどが int に変換されます。サポートされているキーは次のとおりです。 * major: int、メジャー バージョン番号 * minor: int、マイナー バージョン番号 * micro: 省略可の int、マイクロ バージョン番号 * releaselevel: 省略可の str、リリース レベル * serial: 省略可の int、リリースのシリアル番号 :::{versionchanged} 0.36.0 {obj}`--python_version` によってデフォルト値が決まります。:::
pyc_tag

文字列。デフォルトは "" です。

省略可能な文字列。pyc ファイル名のタグ部分(foo.cpython-39.pyc の「cpython-39」インフィックスなど)。PEP 3147 をご覧ください。指定しない場合、implementation_name と interpreter_version_info から計算されます。pyc_tag を使用できない場合、ソースレスの pyc 生成のみが正しく機能します。
python_version

文字列。デフォルトは "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 スタブ スクリプトに先頭に追加される「シェバン」式。理由については、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` フィールド。:::