Aturan Python

Laporkan masalah Lihat sumber Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Aturan

py_binary

Melihat sumber aturan
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)

Argumen

Atribut
name

Nama; wajib

Nama unik untuk target ini.

deps

Daftar label; default-nya adalah []

Daftar library tambahan yang akan ditautkan ke target. Lihat komentar tentang atribut [`deps` yang biasanya ditentukan oleh aturan](https://bazel.build/reference/be/common-definitions#typical-attributes). Ini biasanya adalah aturan `py_library`. Target yang hanya menyediakan file data yang digunakan saat runtime berada dalam atribut `data`.
srcs

Daftar label; wajib diisi

Daftar file sumber Python yang diproses untuk membuat target. Ini menyertakan semua kode yang Anda check in dan dapat menyertakan file sumber yang dihasilkan. File `.py` berada di `srcs` dan target library berada di `deps`. File biner lain yang mungkin diperlukan saat runtime berada di `data`.
data

Daftar label; default-nya adalah []

Daftar file yang diperlukan oleh library ini saat runtime. Lihat komentar tentang atribut [`data` yang biasanya ditentukan oleh aturan](https://bazel.build/reference/be/common-definitions#typical-attributes). Tidak ada `py_embed_data` seperti `cc_embed_data` dan `go_embed_data`. Hal ini karena Python memiliki konsep resource runtime.
imports

Daftar string; default-nya adalah []

Daftar direktori impor yang akan ditambahkan ke PYTHONPATH. Tunduk pada penggantian "Buat variabel". Direktori impor ini akan ditambahkan untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan yang menjadi dependensi aturan ini. Setiap direktori akan ditambahkan ke `PYTHONPATH` oleh aturan `py_binary` yang bergantung pada aturan ini. String ini relatif terhadap repo-runfiles-root, Jalur absolut (jalur yang dimulai dengan `/`) dan jalur yang mereferensikan jalur di atas root eksekusi tidak diizinkan dan akan menyebabkan error.
legacy_create_init

Bilangan bulat; default-nya adalah -1

Apakah akan membuat file `__init__.py` kosong secara implisit di hierarki runfiles. File ini dibuat di setiap direktori yang berisi kode sumber Python atau library bersama, dan setiap direktori induk dari direktori tersebut, tidak termasuk direktori root repo. Default, `-1` (otomatis), berarti benar kecuali jika `--incompatible_default_to_explicit_init_py` digunakan. Jika salah, pengguna bertanggung jawab untuk membuat file `__init__.py` (mungkin kosong) dan menambahkannya ke `srcs` target Python sesuai kebutuhan.
main

Label; default-nya adalah None

Opsional; nama file sumber yang merupakan titik entri utama aplikasi. File ini juga harus dicantumkan dalam `srcs`. Jika tidak ditentukan, `name`, dengan `.py` ditambahkan, akan digunakan. Jika `name` tidak cocok dengan nama file apa pun di `srcs`, `main` harus ditentukan.
precompile

String; default-nya adalah "inherit"

Apakah file sumber py **untuk target ini** harus dikompilasi sebelumnya. Nilai: * `inherit`: Mengizinkan biner downstream menentukan apakah file yang telah dikompilasi sebelumnya akan digunakan. * `enabled`: Mengompilasi file sumber Python pada waktu build. * `disabled`: Jangan kompilasi file sumber Python pada waktu build. :::{seealso} * Flag {flag}`--precompile`, yang dapat mengganti atribut ini dalam beberapa kasus dan akan memengaruhi semua target saat mem-build. * Atribut {obj}`pyc_collection` untuk mengaktifkan prakompilasi secara transitif berdasarkan per target. * Dokumen [Prakompilasi](prakompilasi) untuk panduan tentang penggunaan prakompilasi. :::
precompile_invalidation_mode

String; default-nya adalah "auto"

Cara file yang telah dikompilasi sebelumnya harus diverifikasi agar selalu terbaru dengan file sumber terkait. Nilai yang memungkinkan adalah: * `auto`: Nilai efektif akan otomatis ditentukan oleh setelan build lainnya. * `checked_hash`: Gunakan file pyc jika hash file sumber cocok dengan hash yang dicatat dalam file pyc. Hal ini paling berguna saat menangani kode yang dapat Anda ubah. * `unchecked_hash`: Selalu gunakan file pyc; jangan periksa hash pyc terhadap file sumber. Hal ini paling berguna jika kode tidak akan diubah. Untuk informasi selengkapnya tentang mode pembatalan validasi pyc, lihat https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
precompile_optimize_level

Bilangan bulat; default-nya adalah 0

Tingkat pengoptimalan untuk file yang dikompilasi sebelumnya. Untuk informasi selengkapnya tentang tingkat pengoptimalan, lihat dokumen arg `optimize` fungsi `compile()` di https://docs.python.org/3/library/functions.html#compile CATATAN: Nilai `-1` berarti "interpreter saat ini", yang akan menjadi interpreter yang digunakan _pada waktu build saat pycs dibuat_, bukan interpreter yang digunakan pada runtime saat kode benar-benar berjalan.
precompile_source_retention

String; default-nya adalah "inherit"

Menentukan, saat file sumber dikompilasi, apakah file sumber disimpan dalam output yang dihasilkan atau tidak. Nilai yang valid adalah: * `inherit`: Mewarisi nilai dari tanda {flag}`--precompile_source_retention`. * `keep_source`: Menyertakan sumber Python asli. * `omit_source`: Jangan sertakan sumber py asli.
pyc_collection

String; default-nya adalah "inherit"

Menentukan apakah file pyc dari dependensi harus disertakan secara manual. Nilai yang valid adalah: * `inherit`: Mewarisi nilai dari {flag}`--precompile`. * `include_pyc`: Menambahkan file pyc yang dihasilkan secara implisit dari dependensi. yaitu file pyc untuk target yang menentukan {attr}`precompile="inherit"`. * `disabled`: Jangan tambahkan file pyc yang dihasilkan secara implisit. Perhatikan bahwa file pyc mungkin masih berasal dari dependensi yang mengaktifkan prakompilasi di tingkat target.
python_version

String; default-nya adalah "PY3"

Tidak digunakan lagi, tidak berfungsi.
srcs_version

String; default-nya adalah "PY2AND3"

Tidak digunakan lagi, tidak berfungsi.
stamp

Bilangan bulat; default-nya adalah -1

Apakah akan mengenkode informasi build ke dalam biner. Nilai yang mungkin: * `stamp = 1`: Selalu stempel informasi build ke dalam biner, bahkan dalam build `--nostamp`. **Setelan ini harus dihindari**, karena berpotensi menghentikan penyimpanan dalam cache jarak jauh untuk biner dan tindakan downstream apa pun yang bergantung padanya. * `stamp = 0`: Selalu ganti informasi build dengan nilai konstan. Hal ini memberikan cache hasil build yang baik. * `stamp = -1`: Penyematan informasi build dikontrol oleh flag `--[no]stamp`. Biner yang dicap tidak akan di-build ulang kecuali jika dependensinya berubah. PERINGATAN: Stempel dapat membahayakan performa build dengan mengurangi hit cache dan harus dihindari jika memungkinkan.

py_library

Melihat sumber aturan
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)
Library kode Python yang dapat diandalkan. Output default: * Sumber Python input * Artefak yang dikompilasi sebelumnya dari sumber. CATATAN: Prakompilasi memengaruhi output default mana yang disertakan dalam runfile yang dihasilkan. Lihat atribut dan flag terkait prakompilasi untuk mengetahui informasi selengkapnya. :::{versionchanged} 0.37.0 File sumber tidak lagi ditambahkan ke runfile secara langsung. :::

Argumen

Atribut
name

Nama; wajib

Nama unik untuk target ini.

deps

Daftar label; default-nya adalah []

Daftar library tambahan yang akan ditautkan ke target. Lihat komentar tentang atribut [`deps` yang biasanya ditentukan oleh aturan](https://bazel.build/reference/be/common-definitions#typical-attributes). Ini biasanya adalah aturan `py_library`. Target yang hanya menyediakan file data yang digunakan saat runtime berada dalam atribut `data`.
srcs

Daftar label; default-nya adalah []

Daftar file sumber Python yang diproses untuk membuat target. Ini menyertakan semua kode yang Anda check in dan dapat menyertakan file sumber yang dihasilkan. File `.py` berada di `srcs` dan target library berada di `deps`. File biner lain yang mungkin diperlukan saat runtime berada di `data`.
data

Daftar label; default-nya adalah []

Daftar file yang diperlukan oleh library ini saat runtime. Lihat komentar tentang atribut [`data` yang biasanya ditentukan oleh aturan](https://bazel.build/reference/be/common-definitions#typical-attributes). Tidak ada `py_embed_data` seperti `cc_embed_data` dan `go_embed_data`. Hal ini karena Python memiliki konsep resource runtime.
imports

Daftar string; default-nya adalah []

Daftar direktori impor yang akan ditambahkan ke PYTHONPATH. Tunduk pada penggantian "Buat variabel". Direktori impor ini akan ditambahkan untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan yang menjadi dependensi aturan ini. Setiap direktori akan ditambahkan ke `PYTHONPATH` oleh aturan `py_binary` yang bergantung pada aturan ini. String ini relatif terhadap repo-runfiles-root, Jalur absolut (jalur yang dimulai dengan `/`) dan jalur yang mereferensikan jalur di atas root eksekusi tidak diizinkan dan akan menyebabkan error.
precompile

String; default-nya adalah "inherit"

Apakah file sumber py **untuk target ini** harus dikompilasi sebelumnya. Nilai: * `inherit`: Mengizinkan biner downstream menentukan apakah file yang telah dikompilasi sebelumnya akan digunakan. * `enabled`: Mengompilasi file sumber Python pada waktu build. * `disabled`: Jangan kompilasi file sumber Python pada waktu build. :::{seealso} * Flag {flag}`--precompile`, yang dapat mengganti atribut ini dalam beberapa kasus dan akan memengaruhi semua target saat mem-build. * Atribut {obj}`pyc_collection` untuk mengaktifkan prakompilasi secara transitif berdasarkan per target. * Dokumen [Prakompilasi](prakompilasi) untuk panduan tentang penggunaan prakompilasi. :::
precompile_invalidation_mode

String; default-nya adalah "auto"

Cara file yang telah dikompilasi sebelumnya harus diverifikasi agar selalu terbaru dengan file sumber terkait. Nilai yang memungkinkan adalah: * `auto`: Nilai efektif akan otomatis ditentukan oleh setelan build lainnya. * `checked_hash`: Gunakan file pyc jika hash file sumber cocok dengan hash yang dicatat dalam file pyc. Hal ini paling berguna saat menangani kode yang dapat Anda ubah. * `unchecked_hash`: Selalu gunakan file pyc; jangan periksa hash pyc terhadap file sumber. Hal ini paling berguna jika kode tidak akan diubah. Untuk informasi selengkapnya tentang mode pembatalan validasi pyc, lihat https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
precompile_optimize_level

Bilangan bulat; default-nya adalah 0

Tingkat pengoptimalan untuk file yang dikompilasi sebelumnya. Untuk informasi selengkapnya tentang tingkat pengoptimalan, lihat dokumen arg `optimize` fungsi `compile()` di https://docs.python.org/3/library/functions.html#compile CATATAN: Nilai `-1` berarti "interpreter saat ini", yang akan menjadi interpreter yang digunakan _pada waktu build saat pycs dibuat_, bukan interpreter yang digunakan pada runtime saat kode benar-benar berjalan.
precompile_source_retention

String; default-nya adalah "inherit"

Menentukan, saat file sumber dikompilasi, apakah file sumber disimpan dalam output yang dihasilkan atau tidak. Nilai yang valid adalah: * `inherit`: Mewarisi nilai dari tanda {flag}`--precompile_source_retention`. * `keep_source`: Menyertakan sumber Python asli. * `omit_source`: Jangan sertakan sumber py asli.
srcs_version

String; default-nya adalah "PY2AND3"

Tidak digunakan lagi, tidak berfungsi.

py_test

Melihat sumber aturan
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)

Argumen

Atribut
name

Nama; wajib

Nama unik untuk target ini.

deps

Daftar label; default-nya adalah []

Daftar library tambahan yang akan ditautkan ke target. Lihat komentar tentang atribut [`deps` yang biasanya ditentukan oleh aturan](https://bazel.build/reference/be/common-definitions#typical-attributes). Ini biasanya adalah aturan `py_library`. Target yang hanya menyediakan file data yang digunakan saat runtime berada dalam atribut `data`.
srcs

Daftar label; wajib diisi

Daftar file sumber Python yang diproses untuk membuat target. Ini menyertakan semua kode yang Anda check in dan dapat menyertakan file sumber yang dihasilkan. File `.py` berada di `srcs` dan target library berada di `deps`. File biner lain yang mungkin diperlukan saat runtime berada di `data`.
data

Daftar label; default-nya adalah []

Daftar file yang diperlukan oleh library ini saat runtime. Lihat komentar tentang atribut [`data` yang biasanya ditentukan oleh aturan](https://bazel.build/reference/be/common-definitions#typical-attributes). Tidak ada `py_embed_data` seperti `cc_embed_data` dan `go_embed_data`. Hal ini karena Python memiliki konsep resource runtime.
imports

Daftar string; default-nya adalah []

Daftar direktori impor yang akan ditambahkan ke PYTHONPATH. Tunduk pada penggantian "Buat variabel". Direktori impor ini akan ditambahkan untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan aturan yang menjadi dependensi aturan ini. Setiap direktori akan ditambahkan ke `PYTHONPATH` oleh aturan `py_binary` yang bergantung pada aturan ini. String ini relatif terhadap repo-runfiles-root, Jalur absolut (jalur yang dimulai dengan `/`) dan jalur yang mereferensikan jalur di atas root eksekusi tidak diizinkan dan akan menyebabkan error.
legacy_create_init

Bilangan bulat; default-nya adalah -1

Apakah akan membuat file `__init__.py` kosong secara implisit di hierarki runfiles. File ini dibuat di setiap direktori yang berisi kode sumber Python atau library bersama, dan setiap direktori induk dari direktori tersebut, tidak termasuk direktori root repo. Default, `-1` (otomatis), berarti benar kecuali jika `--incompatible_default_to_explicit_init_py` digunakan. Jika salah, pengguna bertanggung jawab untuk membuat file `__init__.py` (mungkin kosong) dan menambahkannya ke `srcs` target Python sesuai kebutuhan.
main

Label; default-nya adalah None

Opsional; nama file sumber yang merupakan titik entri utama aplikasi. File ini juga harus dicantumkan dalam `srcs`. Jika tidak ditentukan, `name`, dengan `.py` ditambahkan, akan digunakan. Jika `name` tidak cocok dengan nama file apa pun di `srcs`, `main` harus ditentukan.
precompile

String; default-nya adalah "inherit"

Apakah file sumber py **untuk target ini** harus dikompilasi sebelumnya. Nilai: * `inherit`: Mengizinkan biner downstream menentukan apakah file yang telah dikompilasi sebelumnya akan digunakan. * `enabled`: Mengompilasi file sumber Python pada waktu build. * `disabled`: Jangan kompilasi file sumber Python pada waktu build. :::{seealso} * Flag {flag}`--precompile`, yang dapat mengganti atribut ini dalam beberapa kasus dan akan memengaruhi semua target saat mem-build. * Atribut {obj}`pyc_collection` untuk mengaktifkan prakompilasi secara transitif berdasarkan per target. * Dokumen [Prakompilasi](prakompilasi) untuk panduan tentang penggunaan prakompilasi. :::
precompile_invalidation_mode

String; default-nya adalah "auto"

Cara file yang telah dikompilasi sebelumnya harus diverifikasi agar selalu terbaru dengan file sumber terkait. Nilai yang memungkinkan adalah: * `auto`: Nilai efektif akan otomatis ditentukan oleh setelan build lainnya. * `checked_hash`: Gunakan file pyc jika hash file sumber cocok dengan hash yang dicatat dalam file pyc. Hal ini paling berguna saat menangani kode yang dapat Anda ubah. * `unchecked_hash`: Selalu gunakan file pyc; jangan periksa hash pyc terhadap file sumber. Hal ini paling berguna jika kode tidak akan diubah. Untuk informasi selengkapnya tentang mode pembatalan validasi pyc, lihat https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode
precompile_optimize_level

Bilangan bulat; default-nya adalah 0

Tingkat pengoptimalan untuk file yang dikompilasi sebelumnya. Untuk informasi selengkapnya tentang tingkat pengoptimalan, lihat dokumen arg `optimize` fungsi `compile()` di https://docs.python.org/3/library/functions.html#compile CATATAN: Nilai `-1` berarti "interpreter saat ini", yang akan menjadi interpreter yang digunakan _pada waktu build saat pycs dibuat_, bukan interpreter yang digunakan pada runtime saat kode benar-benar berjalan.
precompile_source_retention

String; default-nya adalah "inherit"

Menentukan, saat file sumber dikompilasi, apakah file sumber disimpan dalam output yang dihasilkan atau tidak. Nilai yang valid adalah: * `inherit`: Mewarisi nilai dari tanda {flag}`--precompile_source_retention`. * `keep_source`: Menyertakan sumber Python asli. * `omit_source`: Jangan sertakan sumber py asli.
pyc_collection

String; default-nya adalah "inherit"

Menentukan apakah file pyc dari dependensi harus disertakan secara manual. Nilai yang valid adalah: * `inherit`: Mewarisi nilai dari {flag}`--precompile`. * `include_pyc`: Menambahkan file pyc yang dihasilkan secara implisit dari dependensi. yaitu file pyc untuk target yang menentukan {attr}`precompile="inherit"`. * `disabled`: Jangan tambahkan file pyc yang dihasilkan secara implisit. Perhatikan bahwa file pyc mungkin masih berasal dari dependensi yang mengaktifkan prakompilasi di tingkat target.
python_version

String; default-nya adalah "PY3"

Tidak digunakan lagi, tidak berfungsi.
srcs_version

String; default-nya adalah "PY2AND3"

Tidak digunakan lagi, tidak berfungsi.
stamp

Bilangan bulat; default-nya adalah 0

Apakah akan mengenkode informasi build ke dalam biner. Nilai yang mungkin: * `stamp = 1`: Selalu stempel informasi build ke dalam biner, bahkan dalam build `--nostamp`. **Setelan ini harus dihindari**, karena berpotensi menghentikan penyimpanan dalam cache jarak jauh untuk biner dan tindakan downstream apa pun yang bergantung padanya. * `stamp = 0`: Selalu ganti informasi build dengan nilai konstan. Hal ini memberikan cache hasil build yang baik. * `stamp = -1`: Penyematan informasi build dikontrol oleh flag `--[no]stamp`. Biner yang dicap tidak akan di-build ulang kecuali jika dependensinya berubah. PERINGATAN: Stempel dapat membahayakan performa build dengan mengurangi hit cache dan harus dihindari jika memungkinkan.

py_runtime

Melihat sumber aturan
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)
Merepresentasikan runtime Python yang digunakan untuk menjalankan kode Python. Target `py_runtime` dapat mewakili *runtime platform* atau *runtime in-build*. Runtime platform mengakses penafsir yang diinstal sistem di jalur yang diketahui, sedangkan runtime bawaan mengarah ke target yang dapat dieksekusi yang bertindak sebagai penafsir. Dalam kedua kasus tersebut, "interpreter" berarti skrip biner atau wrapper yang dapat dieksekusi yang mampu menjalankan skrip Python yang diteruskan di command line, mengikuti konvensi yang sama dengan penafsir CPython standar. Runtime platform pada dasarnya bersifat non-hermetis. Hal ini memberlakukan persyaratan pada platform target untuk memiliki penafsir yang terletak di jalur tertentu. Runtime bawaan mungkin bersifat hermetis atau tidak, bergantung pada apakah runtime tersebut mengarah ke interpreter yang diperiksa atau skrip wrapper yang mengakses interpretor sistem. Contoh ``` 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", ) ```

Argumen

Atribut
name

Nama; wajib

Nama unik untuk target ini.

abi_flags

String; default-nya adalah ""

Flag ABI runtime, yaitu `sys.abiflags`. Jika tidak ditetapkan, flag akan ditetapkan berdasarkan flag.
bootstrap_template

Label; default-nya adalah "@rules_python//python/private:bootstrap_template"

File template skrip bootstrap yang akan digunakan. Harus memiliki %python_binary%, %workspace_name%, %main%, dan %imports%. Template ini, setelah diperluas, menjadi file yang dapat dieksekusi yang digunakan untuk memulai proses, sehingga bertanggung jawab atas tindakan bootstrap awal seperti menemukan interpretor Python, runfile, dan membuat lingkungan untuk menjalankan aplikasi Python yang diinginkan. Meskipun saat ini bersifat opsional, atribut ini akan menjadi wajib saat aturan Python dipindahkan dari Bazel itu sendiri. Nama variabel yang diperluas adalah API yang tidak stabil dan dapat berubah sewaktu-waktu. API akan menjadi lebih stabil saat aturan Python dipindahkan dari Bazel itu sendiri. Lihat @bazel_tools//tools/python:python_bootstrap_template.txt untuk variabel lainnya.
coverage_tool

Label; default-nya adalah None

Ini adalah target yang akan digunakan untuk mengumpulkan informasi cakupan kode dari target {rule}`py_binary` dan {rule}`py_test`. Jika ditetapkan, target harus menghasilkan satu file atau berupa target yang dapat dieksekusi. Jalur ke satu file, atau file yang dapat dieksekusi jika target dapat dieksekusi, menentukan titik entri untuk alat cakupan python. Target dan runfile-nya akan ditambahkan ke runfile saat cakupan diaktifkan. Titik entri untuk alat ini harus dapat dimuat oleh penafsir Python (misalnya, file `.py` atau `.pyc`). Perintah ini harus menerima argumen command line dari [`coverage.py`](https://coverage.readthedocs.io), setidaknya menyertakan subperintah `run` dan `lcov`.
files

Daftar label; default-nya adalah []

Untuk runtime bawaan, ini adalah kumpulan file yang membentuk runtime ini. File ini akan ditambahkan ke runfile biner Python yang menggunakan runtime ini. Untuk runtime platform, atribut ini tidak boleh ditetapkan.
implementation_name

String; default-nya adalah "cpython"

Nama implementasi Python (`sys.implementation.name`)
interpreter

Label; default-nya adalah None

Untuk runtime bawaan, ini adalah target yang akan dipanggil sebagai penafsir. File ini dapat berupa: * Satu file, yang akan menjadi biner penafsir. Penafsir tersebut dianggap sebagai file tunggal yang dapat dieksekusi mandiri atau file pendukung apa pun yang ditentukan dalam `file`. * Target yang dapat dieksekusi. File yang dapat dieksekusi target akan berupa biner penafsir. Output default lainnya (`target.files`) dan runfile file biasa (`runfiles.files`) akan otomatis disertakan seolah-olah ditentukan dalam atribut `files`. CATATAN: runfile target mungkin belum dihormati/disebarkan dengan benar kepada konsumen toolchain/interpreter, lihat bazelbuild/rules_python/issues/1612 Untuk runtime platform (yaitu `interpreter_path` yang ditetapkan), atribut ini tidak boleh ditetapkan.
interpreter_path

String; default-nya adalah ""

Untuk runtime platform, ini adalah jalur absolut dari penafsir Python di platform target. Untuk runtime bawaan, atribut ini tidak boleh ditetapkan.
interpreter_version_info

Kamus: String -> String; default-nya adalah {}

Informasi versi tentang penafsir yang disediakan runtime ini. Jika tidak ditentukan, gunakan {obj}`--python_version` Kunci yang didukung cocok dengan nama untuk `sys.version_info`. Meskipun nilai input adalah string, sebagian besar dikonversi menjadi int. Kunci yang didukung adalah: * major: int, nomor versi utama * minor: int, nomor versi minor * micro: int opsional, nomor versi mikro * releaselevel: str opsional, level rilis * serial: int opsional, nomor seri rilis :::{versionchanged} 0.36.0 {obj}`--python_version` menentukan nilai default. :::
pyc_tag

String; default-nya adalah ""

String opsional; bagian tag dari nama file pyc, misalnya infiks `cpython-39` dari `foo.cpython-39.pyc`. Lihat PEP 3147. Jika tidak ditentukan, nilai ini akan dihitung dari `implementation_name` dan `interpreter_version_info`. Jika tidak ada pyc_tag yang tersedia, hanya pembuatan pyc tanpa sumber yang akan berfungsi dengan benar.
python_version

String; default-nya adalah "PY3"

Apakah runtime ini untuk versi utama Python 2 atau 3. Nilai yang valid adalah `"PY2"` dan `"PY3"`. Nilai default dikontrol oleh tanda `--incompatible_py3_is_default`. Namun, pada masa mendatang, atribut ini akan bersifat wajib dan tidak memiliki nilai default.
stage2_bootstrap_template

Label; default-nya adalah "@rules_python//python/private:stage2_bootstrap_template"

Template yang akan digunakan saat bootstrap dua tahap diaktifkan :::{seealso} {obj}`PyRuntimeInfo.stage2_bootstrap_template` dan {obj}`--bootstrap_impl` :::
stub_shebang

String; default-nya adalah "#!/usr/bin/env python3"

Ekspresi "Shebang" ditambahkan ke skrip stub Python bootstrap yang digunakan saat menjalankan target {rule}`py_binary`. Lihat https://github.com/bazelbuild/bazel/issues/8685 untuk mengetahui motivasinya. Tidak berlaku untuk Windows.
zip_main_template

Label; default-nya adalah "@rules_python//python/private:zip_main_template"

Template yang akan digunakan untuk file `__main__.py` level teratas zip. Ini menjadi titik entri yang dijalankan saat `python foo.zip` dijalankan. :::{seealso} Bidang {obj}`PyRuntimeInfo.zip_main_template`. :::