ルール
- <ph type="x-smartling-placeholder"></ph> py_binary
- <ph type="x-smartling-placeholder"></ph> py_library
- <ph type="x-smartling-placeholder"></ph> py_test
- <ph type="x-smartling-placeholder"></ph> py_runtime
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, python_version, restricted_to, srcs_version, stamp, tags, target_compatible_with, testonly, toolchains, visibility)
py_binary
は、以下で構成される実行可能な Python プログラムです。
.py
個のソースファイル(おそらく
他の py_library
ルールへの適用など)、*.runfiles
アプリケーションに必要なすべてのコードとデータを含む
スタブ スクリプトにより、プログラムを実行時に
適切な初期環境とデータが必要です。
例
py_binary( name = "foo", srcs = ["foo.py"], data = [":transform"], # a cc_binary which we invoke at run time deps = [ ":foolib", # a py_library ], )
別のバイナリ内から py_binary
を実行する場合、
(たとえば、Python バイナリを実行してからモックリソースをセットアップする
(java_test 内)である場合、正しいアプローチは、他のバイナリまたは
テストはデータ セクションの py_binary
に依存します。もう 1 つは、
バイナリがソースに対して相対的に py_binary
を特定できる
されます。
py_binary( name = "test_main", srcs = ["test_main.py"], deps = [":testing"], ) java_library( name = "testing", srcs = glob(["*.java"]), data = [":test_main"] )
引数
属性 | |
---|---|
name |
名前:必須 このターゲットの一意の名前。 main が指定されていない場合は、名前と同じにする必要があります。
アプリケーションのメインのエントリ ポイントであるソースファイル
拡張されます。たとえば、エントリ ポイント名が
main.py の場合、名前は main になります。
|
deps
|
ラベルのリスト。デフォルトは deps に関する一般的なコメントを見る:
<ph type="x-smartling-placeholder"></ph>
ほとんどのビルドルールで定義されている一般的な属性。
これらは通常
py_library ルール。
|
srcs
|
ラベルのリスト。必須 ターゲットを作成するために処理されたソース(.py )ファイルのリスト。
これには、チェックインしたすべてのコードと生成されたソースファイルが含まれます。ライブラリ ターゲット
代わりに deps に属し、実行時に必要な他のバイナリ ファイルは
data 。
|
imports
|
文字列のリスト。デフォルトは PYTHONPATH に追加するインポート ディレクトリのリスト。
「変数を作成」による置換が適用されます。これらのインポート
ディレクトリが、このルールおよびそれに依存するすべてのルールに追加されます(注:
適用できます。各ディレクトリは以下によって
絶対パス( |
legacy_create_init
|
整数、デフォルトは --incompatible_default_to_explicit_init_py が使用されます。false の場合、ユーザーは
__init__.py ファイルを作成して(空の可能性もあります)、それを
必要に応じて Python ターゲットの srcs 。
|
main
|
ラベル:デフォルトは srcs にもリストする必要があります。指定しない場合は
代わりに name が使用されます(上記参照)。name が一致しない場合
srcs の任意のファイル名と一致するため、main を指定する必要があります。
|
python_version
|
String;設定不可デフォルトは deps )を Python 2 または Python 用にビルドするかどうか
3.有効な値は "PY2" と "PY3" (デフォルト)です。
Python のバージョンは常に、(おそらくデフォルトにより)最初に設定された任意のバージョンに コマンドラインまたは これに依存している他の上位ターゲットに 割り当てることができます 現在の Python バージョンで バグの警告: この属性は、Bazel がターゲットをビルドするバージョンを設定します。
#4815 が原因で、
その結果、スタブ スクリプトが実行時に間違ったインタープリタ バージョンを呼び出すことがあります。詳しくは、
この
回避策があり、この回避策では |
srcs_version
|
String;デフォルトは srcs が Python と互換性があることを宣言します。
2、Python 3、またはその両方を使用できます。Python ランタイム バージョンを実際に設定するには、次のコマンドを使用します。
属性の python_version 属性
実行可能な Python ルール(py_binary または py_test )。
使用できる値は この属性の値に対して現在の Python バージョンを実際に検証するのは、実行可能なルール( バージョン要件をもたらす依存関係についての診断情報を取得するには、
ターゲットで bazel build <your target> \ --aspects=@rules_python//python:defs.bzl%find_requirements \ --output_groups=pyversioninfoこれにより、情報を示す接尾辞 -pyversioninfo.txt が付いたファイルが作成されます
ターゲットに特定の Python バージョンが必要な理由。なお、
バージョンの競合により、指定されたターゲットのビルドに失敗した。
|
stamp
|
整数、デフォルトは
スタンプされたバイナリは、依存関係が変更されない限り再ビルドされません。 |
py_library
<ph type="x-smartling-placeholder"></ph> ルールのソースを表示py_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, imports, licenses, restricted_to, srcs_version, tags, target_compatible_with, testonly, visibility)
引数
属性 | |
---|---|
name |
名前:必須 このターゲットの一意の名前。 |
deps
|
ラベルのリスト。デフォルトは deps に関する一般的なコメントを見る:
<ph type="x-smartling-placeholder"></ph>
ほとんどのビルドルールで定義されている一般的な属性。
これらは通常
py_library ルール。
|
srcs
|
ラベルのリスト。デフォルトは .py )ファイルのリスト。
これには、チェックインしたすべてのコードと生成されたソースファイルが含まれます。
|
imports
|
文字列のリスト。デフォルトは PYTHONPATH に追加するインポート ディレクトリのリスト。
「変数を作成」による置換が適用されます。これらのインポート
ディレクトリが、このルールおよびそれに依存するすべてのルールに追加されます(注:
適用できます。各ディレクトリは以下によって
絶対パス( |
srcs_version
|
String;デフォルトは srcs が Python と互換性があることを宣言します。
2、Python 3、またはその両方を使用できます。Python ランタイム バージョンを実際に設定するには、次のコマンドを使用します。
属性の python_version 属性
実行可能な Python ルール(py_binary または py_test )。
使用できる値は この属性の値に対して現在の Python バージョンを実際に検証するのは、実行可能なルール( バージョン要件をもたらす依存関係についての診断情報を取得するには、
ターゲットで bazel build <your target> \ --aspects=@rules_python//python:defs.bzl%find_requirements \ --output_groups=pyversioninfoこれにより、情報を示す接尾辞 -pyversioninfo.txt が付いたファイルが作成されます
ターゲットに特定の Python バージョンが必要な理由。なお、
バージョンの競合により、指定されたターゲットのビルドに失敗した。
|
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, python_version, restricted_to, shard_count, size, srcs_version, stamp, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
py_test()
ルールはテストをコンパイルします。テストはバイナリラッパー
テストコードを書く必要があります
例
py_test( name = "runtest_test", srcs = ["runtest_test.py"], deps = [ "//path/to/a/py/library", ], )
メイン モジュールを指定することもできます。
py_test( name = "runtest_test", srcs = [ "runtest_main.py", "runtest_lib.py", ], main = "runtest_main.py", )
引数
属性 | |
---|---|
name |
名前:必須 このターゲットの一意の名前。 |
deps
|
ラベルのリスト。デフォルトは deps に関する一般的なコメントを見る:
<ph type="x-smartling-placeholder"></ph>
ほとんどのビルドルールで定義されている一般的な属性。
これらは通常
py_library ルール。
|
srcs
|
ラベルのリスト。必須 ターゲットを作成するために処理されたソース(.py )ファイルのリスト。
これには、チェックインしたすべてのコードと生成されたソースファイルが含まれます。ライブラリ ターゲット
代わりに deps に属し、実行時に必要な他のバイナリ ファイルは
data 。
|
imports
|
文字列のリスト。デフォルトは PYTHONPATH に追加するインポート ディレクトリのリスト。
「変数を作成」による置換が適用されます。これらのインポート
ディレクトリが、このルールおよびそれに依存するすべてのルールに追加されます(注:
適用できます。各ディレクトリは以下によって
絶対パス( |
legacy_create_init
|
整数、デフォルトは --incompatible_default_to_explicit_init_py が使用されます。false の場合、ユーザーは
__init__.py ファイルを作成して(空の可能性もあります)、それを
必要に応じて Python ターゲットの srcs 。
|
main
|
ラベル:デフォルトは srcs にもリストする必要があります。指定しない場合は
代わりに name が使用されます(上記参照)。name が一致しない場合
srcs の任意のファイル名と一致するため、main を指定する必要があります。
|
python_version
|
String;設定不可デフォルトは deps )を Python 2 または Python 用にビルドするかどうか
3.有効な値は "PY2" と "PY3" (デフォルト)です。
Python のバージョンは常に、(おそらくデフォルトにより)最初に設定された任意のバージョンに コマンドラインまたは これに依存している他の上位ターゲットに 割り当てることができます 現在の Python バージョンで バグの警告: この属性は、Bazel がターゲットをビルドするバージョンを設定します。
#4815 が原因で、
その結果、スタブ スクリプトが実行時に間違ったインタープリタ バージョンを呼び出すことがあります。詳しくは、
この
回避策があり、この回避策では |
srcs_version
|
String;デフォルトは srcs が Python と互換性があることを宣言します。
2、Python 3、またはその両方を使用できます。Python ランタイム バージョンを実際に設定するには、次のコマンドを使用します。
属性の python_version 属性
実行可能な Python ルール(py_binary または py_test )。
使用できる値は この属性の値に対して現在の Python バージョンを実際に検証するのは、実行可能なルール( バージョン要件をもたらす依存関係についての診断情報を取得するには、
ターゲットで bazel build <your target> \ --aspects=@rules_python//python:defs.bzl%find_requirements \ --output_groups=pyversioninfoこれにより、情報を示す接尾辞 -pyversioninfo.txt が付いたファイルが作成されます
ターゲットに特定の Python バージョンが必要な理由。なお、
バージョンの競合により、指定されたターゲットのビルドに失敗した。
|
stamp
|
整数、デフォルトは |
py_runtime
<ph type="x-smartling-placeholder"></ph> ルールのソースを表示py_runtime(name, bootstrap_template, compatible_with, coverage_tool, deprecation, distribs, features, files, interpreter, interpreter_path, licenses, python_version, restricted_to, stub_shebang, tags, target_compatible_with, testonly, visibility)
Python コードの実行に使用される Python ランタイムを表します。
py_runtime
ターゲットは、プラットフォーム ランタイムまたは
ビルド内ランタイム。プラットフォーム ランタイムが、システムにインストールされているインタープリタに既知の場所で
一方、ビルド内ランタイムは、インタープリタとして機能する実行可能ターゲットを指します。イン
どちらの場合も、「通訳」実行可能なバイナリまたはラッパー スクリプトで、
標準のスクリプトと同じ規則に従って、コマンドラインで渡された Python スクリプトを実行する
CPython インタープリタ
プラットフォーム ランタイムは、その性質上、非密閉型です。ターゲット プラットフォームに要件が課せられる インタープリタを特定のパスに配置できますビルド内ランタイムは密閉型とそうでない場合があります。 チェックインされたインタプリタを指しているか、ラッパー スクリプトを使用して 使用します。
例:
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
|
ラベル:デフォルトは |
coverage_tool
|
ラベル:デフォルトは py_binary からコード カバレッジ情報を収集するために使用するターゲットです
と py_test ターゲット。
設定した場合、ターゲットは単一のファイルを生成するか、実行可能なターゲットである必要があります。 単一ファイルへのパス、またはターゲットが実行可能な場合には実行可能なファイルへのパス により、Python カバレッジ ツールのエントリ ポイントが決まります。ターゲットとその カバレッジを有効にすると、runfile が runfile に追加されます。 ツールのエントリ ポイントは、Python インタープリタ(
|
files
|
ラベルのリスト。デフォルトは |
interpreter
|
ラベル:デフォルトは |
interpreter_path
|
String;デフォルトは |
python_version
|
String;デフォルトは "PY2" です。
および "PY3" 。
デフォルト値は |
stub_shebang
|
String;デフォルトは py_binary ターゲットの実行時に使用されます。
詳しくは、問題 8685 をご覧ください。 高めることです。 Windows には適用されません。 |