Python ルール

問題を報告 ソースを表示 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

ルール

py_binary

ルールソースを表示
py_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_group_compatible_with, exec_properties, features, imports, interpreter_args, legacy_create_init, licenses, main, main_module, output_licenses, package_metadata, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyc_collection, pyi_deps, pyi_srcs, 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 にはランタイム リソースの概念があるためです。
distribs

文字列のリスト。デフォルトは [] です。

imports

文字列のリスト。デフォルトは [] です。

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

文字列のリスト。デフォルトは [] です。

インタープリタにのみ適用される引数。インタープリタがサポートする引数は、インタープリタに固有のものです。CPython については、https://docs.python.org/3/using/cmdline.html をご覧ください。:::{note} {obj}`--bootstrap_impl=script` でのみサポートされます。それ以外の場合は無視されます。::: :::{seealso} {obj}`RULES_PYTHON_ADDITIONAL_INTERPRETER_ARGS` 環境変数 ::: :::{versionadded} 1.3.0 :::
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` を指定する必要があります。これは {obj}`main_module` と相互に排他的です。
main_module

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

メイン プログラムとして実行するモジュール名。設定されている場合、`srcs` は必須ではなく、モジュールは依存関係によって提供されると想定されます。モジュールをメイン プログラムとして実行する方法について詳しくは、https://docs.python.org/3/using/cmdline.html#cmdoption-m をご覧ください。これは {obj}`main` とは相互に排他的です。 :::{versionadded} 1.3.0 :::
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` は「現在のインタープリタ」を意味します。これは、コードが実際に実行される実行時に使用されるインタープリタではなく、_pyc が生成されるビルド時に使用される_インタープリタです。
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 ファイルは、ターゲット レベルで事前コンパイルを有効にする依存関係から取得されることがあります。
pyi_deps

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

ライブラリに必要な型定義を提供する依存関係。これらは、`typing.TYPE_CHECKING` で保護されたインポートを満たす依存関係です。これらはビルド時のみの依存関係であり、実行可能なプログラムの一部としては含まれません(ただし、パッケージング ルールで含まれる場合があります)。:::{versionadded} 1.1.0 :::
pyi_srcs

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

ライブラリの型定義ファイル。 通常は `.pyi` ファイルですが、型チェッカー固有の形式の他のファイル形式も使用できます。これらのファイルはビルド時のみの依存関係であり、実行可能なプログラムの一部としては含まれません(ただし、パッケージング ルールに含めることは可能です)。:::{versionadded} 1.1.0 :::
python_version

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

このターゲットで使用する Python バージョン。値は `X.Y` または `X.Y.Z`(または互換性のある)形式にする必要があります。空または未指定の場合、受信構成の {obj}`--python_version` フラグが継承されます。下位互換性を維持するため、値 `PY2` と `PY3` は受け入れられますが、空の値または未指定の値として扱われます。:::{note} リクエストされたバージョンを使用するには、Python バージョンと一致するように構成されたツールチェーンが必要です。存在しない場合、ツールチェーンの構成によっては、無視されるか、エラーが発生する可能性があります。::: :::{versionchanged} 1.1.0 この属性は、`PY2` と `PY3` の値のみを受け付けるように変更され、任意の Python バージョンを受け付けるようになりました。:::
srcs_version

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

廃止され、使用されず、何も行いません。
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_group_compatible_with, exec_properties, features, imports, licenses, package_metadata, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyi_deps, pyi_srcs, restricted_to, srcs_version, tags, target_compatible_with, testonly, toolchains, visibility)
依存できる Python コードのライブラリ。デフォルトの出力: * 入力 Python ソース * ソースからプリコンパイルされたアーティファクト。注: 事前コンパイルは、結果の runfile に含まれるデフォルトの出力に影響します。詳しくは、プリコンパイル関連の属性とフラグをご覧ください。:::{versionchanged} 0.37.0 ソースファイルが runfiles に直接追加されなくなりました。:::

引数

属性
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 にはランタイム リソースの概念があるためです。
distribs

文字列のリスト。デフォルトは [] です。

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` は「現在のインタープリタ」を意味します。これは、コードが実際に実行される実行時に使用されるインタープリタではなく、_pyc が生成されるビルド時に使用される_インタープリタです。
precompile_source_retention

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

ソースファイルがコンパイルされるときに、ソースファイルを結果の出力に保持するかどうかを決定します。有効な値は次のとおりです。 * `inherit`: {flag}`--precompile_source_retention` フラグから値を継承します。* `keep_source`: 元の Python ソースを含めます。* `omit_source`: 元の py ソースを含めません。
pyi_deps

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

ライブラリに必要な型定義を提供する依存関係。これらは、`typing.TYPE_CHECKING` で保護されたインポートを満たす依存関係です。これらはビルド時のみの依存関係であり、実行可能なプログラムの一部としては含まれません(ただし、パッケージング ルールで含まれる場合があります)。:::{versionadded} 1.1.0 :::
pyi_srcs

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

ライブラリの型定義ファイル。 通常は `.pyi` ファイルですが、型チェッカー固有の形式の他のファイル形式も使用できます。これらのファイルはビルド時のみの依存関係であり、実行可能なプログラムの一部としては含まれません(ただし、パッケージング ルールに含めることは可能です)。:::{versionadded} 1.1.0 :::
srcs_version

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

廃止され、使用されず、何も行いません。

py_test

ルールソースを表示
py_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_group_compatible_with, exec_properties, features, flaky, imports, interpreter_args, legacy_create_init, licenses, local, main, main_module, package_metadata, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyc_collection, pyi_deps, pyi_srcs, 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 にはランタイム リソースの概念があるためです。
distribs

文字列のリスト。デフォルトは [] です。

imports

文字列のリスト。デフォルトは [] です。

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

文字列のリスト。デフォルトは [] です。

インタープリタにのみ適用される引数。インタープリタがサポートする引数は、インタープリタに固有のものです。CPython については、https://docs.python.org/3/using/cmdline.html をご覧ください。:::{note} {obj}`--bootstrap_impl=script` でのみサポートされます。それ以外の場合は無視されます。::: :::{seealso} {obj}`RULES_PYTHON_ADDITIONAL_INTERPRETER_ARGS` 環境変数 ::: :::{versionadded} 1.3.0 :::
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` を指定する必要があります。これは {obj}`main_module` と相互に排他的です。
main_module

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

メイン プログラムとして実行するモジュール名。設定されている場合、`srcs` は必須ではなく、モジュールは依存関係によって提供されると想定されます。モジュールをメイン プログラムとして実行する方法について詳しくは、https://docs.python.org/3/using/cmdline.html#cmdoption-m をご覧ください。これは {obj}`main` とは相互に排他的です。 :::{versionadded} 1.3.0 :::
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` は「現在のインタープリタ」を意味します。これは、コードが実際に実行される実行時に使用されるインタープリタではなく、_pyc が生成されるビルド時に使用される_インタープリタです。
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 ファイルは、ターゲット レベルで事前コンパイルを有効にする依存関係から取得されることがあります。
pyi_deps

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

ライブラリに必要な型定義を提供する依存関係。これらは、`typing.TYPE_CHECKING` で保護されたインポートを満たす依存関係です。これらはビルド時のみの依存関係であり、実行可能なプログラムの一部としては含まれません(ただし、パッケージング ルールで含まれる場合があります)。:::{versionadded} 1.1.0 :::
pyi_srcs

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

ライブラリの型定義ファイル。 通常は `.pyi` ファイルですが、型チェッカー固有の形式の他のファイル形式も使用できます。これらのファイルはビルド時のみの依存関係であり、実行可能なプログラムの一部としては含まれません(ただし、パッケージング ルールに含めることは可能です)。:::{versionadded} 1.1.0 :::
python_version

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

このターゲットで使用する Python バージョン。値は `X.Y` または `X.Y.Z`(または互換性のある)形式にする必要があります。空または未指定の場合、受信構成の {obj}`--python_version` フラグが継承されます。下位互換性を維持するため、値 `PY2` と `PY3` は受け入れられますが、空の値または未指定の値として扱われます。:::{note} リクエストされたバージョンを使用するには、Python バージョンと一致するように構成されたツールチェーンが必要です。存在しない場合、ツールチェーンの構成によっては、無視されるか、エラーが発生する可能性があります。::: :::{versionchanged} 1.1.0 この属性は、`PY2` と `PY3` の値のみを受け付けるように変更され、任意の Python バージョンを受け付けるようになりました。:::
srcs_version

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

廃止され、使用されず、何も行いません。
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, exec_compatible_with, exec_group_compatible_with, exec_properties, features, files, implementation_name, interpreter, interpreter_path, interpreter_version_info, package_metadata, pyc_tag, python_version, restricted_to, site_init_template, 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 インタープリタや runfile の検索、目的の 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 バイナリの runfiles に追加されます。プラットフォーム ランタイムの場合、この属性は設定してはなりません。
implementation_name

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

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

ラベル。デフォルトは None です。

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

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

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

ディクショナリ: 文字列 -> 文字列。デフォルトは {}

このランタイムが提供するインタープリタのバージョン情報。指定しない場合は、{obj}`--python_version` を使用します。 サポートされているキーは、`sys.version_info` の名前と一致します。入力値は文字列ですが、ほとんどは整数に変換されます。サポートされているキーは次のとおりです。 * 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` フラグで制御されます。ただし、この属性は今後必須となり、デフォルト値はなくなります。
site_init_template

ラベル。デフォルトは "@rules_python//python/private:site_init_template" です。

起動時にインタープリタによって実行されるバイナリ固有の site-init フックに使用するテンプレート。:::{versionadded} 0.41.0 :::
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` フィールド。 :::