Aturan
py_binary
Lihat sumber aturanpy_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 adalah program Python yang dapat dieksekusi yang terdiri dari
  kumpulan file sumber .py (mungkin milik
  aturan py_library lainnya), struktur direktori *.runfiles
  yang berisi semua kode dan data yang diperlukan oleh
  program saat runtime, dan skrip stub yang memulai program dengan
  lingkungan dan data awal yang benar.
Contoh
py_binary(
    name = "foo",
    srcs = ["foo.py"],
    data = [":transform"],  # a cc_binary which we invoke at run time
    deps = [
        ":foolib",  # a py_library
    ],
)
Jika Anda ingin menjalankan py_binary dari dalam biner atau
   pengujian lain (misalnya, menjalankan biner python untuk menyiapkan beberapa resource tiruan dari
   dalam java_test), pendekatan yang benar adalah membuat biner atau
   pengujian lain bergantung pada py_binary di bagian datanya. Biner
   lain kemudian dapat menemukan py_binary relatif terhadap direktori
   sumber.
py_binary(
    name = "test_main",
    srcs = ["test_main.py"],
    deps = [":testing"],
)
java_library(
    name = "testing",
    srcs = glob(["*.java"]),
    data = [":test_main"]
)
Argumen
| Atribut | |
|---|---|
| name | Nama; wajib Nama unik untuk target ini. Jika maintidak ditentukan, ini harus sama dengan nama
    file sumber yang merupakan titik entri utama aplikasi,
    tanpa ekstensi.  Misalnya, jika titik entri Anda disebutmain.py, maka nama Anda harusmain. | 
| deps | Daftar label; defaultnya adalah  depsdi
          
          Atribut umum yang ditentukan oleh sebagian besar aturan build.
          Aturan ini umumnya adalahpy_library. | 
| srcs | Daftar label; wajib diisiDaftar file sumber ( .py) yang diproses untuk membuat target.
          Ini mencakup semua kode yang Anda check-in dan semua file sumber yang dihasilkan. Target library
          sebaiknya berada dideps, sedangkan file biner lain yang diperlukan saat runtime sebaiknya berada didata. | 
| imports | Daftar string; defaultnya adalah  PYTHONPATH.
          Tunduk pada penggantian "Buat variabel". Direktori
          impor ini akan ditambahkan untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan
          aturan yang bergantung pada aturan ini. Setiap direktori akan ditambahkan ke  
          Jalur absolut (jalur yang dimulai dengan  | 
| legacy_create_init | Bilangan bulat; defaultnya adalah  --incompatible_default_to_explicit_init_pydigunakan. Jika salah (false), pengguna
          bertanggung jawab untuk membuat file __init__.py (mungkin kosong) dan menambahkannya kesrcstarget Python sesuai kebutuhan. | 
| main | Label; defaultnya adalah  srcs. Jika tidak ditentukan,nameakan digunakan (lihat di atas). Jikanametidak
          cocok dengan nama file mana pun disrcs,mainharus ditentukan. | 
| python_version | String; tidak dapat dikonfigurasi; defaultnya adalah  depstransitifnya) untuk Python 2 atau Python
          3. Nilai yang valid adalah"PY2"dan"PY3"(default).Versi Python selalu direset (mungkin secara default) ke versi apa pun yang ditentukan oleh atribut ini, terlepas dari versi yang ditentukan di command line atau oleh target yang lebih tinggi lainnya yang bergantung pada target ini. Jika Anda ingin  Peringatan bug: Atribut ini menetapkan versi yang digunakan Bazel untuk membangun target Anda,
          tetapi karena #4815, skrip stub yang dihasilkan mungkin masih memanggil versi interpreter yang salah saat runtime. Lihat
          solusi
          ini, yang melibatkan penentuan target  | 
| srcs_version | String; default-nya adalah  srcstarget agar kompatibel dengan Python
          2, Python 3, atau keduanya. Untuk benar-benar menyetel versi runtime Python, gunakan atributpython_versiondari
          aturan Python yang dapat dieksekusi (py_binaryataupy_test).Nilai yang diizinkan adalah:  Perhatikan bahwa hanya aturan yang dapat dieksekusi ( Untuk mendapatkan informasi diagnostik tentang dependensi mana yang memperkenalkan persyaratan versi,
          Anda dapat menjalankan aspek  
          bazel build <your target> \
              --aspects=@rules_python//python:defs.bzl%find_requirements \
              --output_groups=pyversioninfo
          -pyversioninfo.txtyang memberikan informasi
          tentang alasan target Anda memerlukan satu versi Python atau versi lainnya. Perhatikan bahwa fitur ini berfungsi meskipun
          target yang diberikan gagal dibuat karena konflik versi. | 
| stamp | Bilangan bulat; defaultnya adalah  
 Biner yang diberi stempel tidak dibangun ulang kecuali jika dependensinya berubah. | 
py_library
Lihat sumber aturanpy_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)
Argumen
| Atribut | |
|---|---|
| name | Nama; wajib Nama unik untuk target ini. | 
| deps | Daftar label; defaultnya adalah  depsdi
          
          Atribut umum yang ditentukan oleh sebagian besar aturan build.
          Aturan ini umumnya adalahpy_library. | 
| srcs | Daftar label; defaultnya adalah  .py) yang diproses untuk membuat target.
        Ini mencakup semua kode yang Anda check-in dan semua file sumber yang dihasilkan. | 
| imports | Daftar string; defaultnya adalah  PYTHONPATH.
          Tunduk pada penggantian "Buat variabel". Direktori
          impor ini akan ditambahkan untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan
          aturan yang bergantung pada aturan ini. Setiap direktori akan ditambahkan ke  
          Jalur absolut (jalur yang dimulai dengan  | 
| srcs_version | String; default-nya adalah  srcstarget agar kompatibel dengan Python
          2, Python 3, atau keduanya. Untuk benar-benar menyetel versi runtime Python, gunakan atributpython_versiondari
          aturan Python yang dapat dieksekusi (py_binaryataupy_test).Nilai yang diizinkan adalah:  Perhatikan bahwa hanya aturan yang dapat dieksekusi ( Untuk mendapatkan informasi diagnostik tentang dependensi mana yang memperkenalkan persyaratan versi,
          Anda dapat menjalankan aspek  
          bazel build <your target> \
              --aspects=@rules_python//python:defs.bzl%find_requirements \
              --output_groups=pyversioninfo
          -pyversioninfo.txtyang memberikan informasi
          tentang alasan target Anda memerlukan satu versi Python atau versi lainnya. Perhatikan bahwa fitur ini berfungsi meskipun
          target yang diberikan gagal dibuat karena konflik versi. | 
py_test
Lihat sumber aturanpy_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)
Aturan py_test() mengompilasi pengujian.  Pengujian adalah wrapper biner
 di sekitar beberapa kode pengujian.
Contoh
py_test(
    name = "runtest_test",
    srcs = ["runtest_test.py"],
    deps = [
        "//path/to/a/py/library",
    ],
)
Anda juga dapat menentukan modul utama:
py_test(
    name = "runtest_test",
    srcs = [
        "runtest_main.py",
        "runtest_lib.py",
    ],
    main = "runtest_main.py",
)
Argumen
| Atribut | |
|---|---|
| name | Nama; wajib Nama unik untuk target ini. | 
| deps | Daftar label; defaultnya adalah  depsdi
          
          Atribut umum yang ditentukan oleh sebagian besar aturan build.
          Aturan ini umumnya adalahpy_library. | 
| srcs | Daftar label; wajib diisiDaftar file sumber ( .py) yang diproses untuk membuat target.
          Ini mencakup semua kode yang Anda check-in dan semua file sumber yang dihasilkan. Target library
          sebaiknya berada dideps, sedangkan file biner lain yang diperlukan saat runtime sebaiknya berada didata. | 
| imports | Daftar string; defaultnya adalah  PYTHONPATH.
          Tunduk pada penggantian "Buat variabel". Direktori
          impor ini akan ditambahkan untuk aturan ini dan semua aturan yang bergantung padanya (catatan: bukan
          aturan yang bergantung pada aturan ini. Setiap direktori akan ditambahkan ke  
          Jalur absolut (jalur yang dimulai dengan  | 
| legacy_create_init | Bilangan bulat; defaultnya adalah  --incompatible_default_to_explicit_init_pydigunakan. Jika salah (false), pengguna
          bertanggung jawab untuk membuat file __init__.py (mungkin kosong) dan menambahkannya kesrcstarget Python sesuai kebutuhan. | 
| main | Label; defaultnya adalah  srcs. Jika tidak ditentukan,nameakan digunakan (lihat di atas). Jikanametidak
          cocok dengan nama file mana pun disrcs,mainharus ditentukan. | 
| python_version | String; tidak dapat dikonfigurasi; defaultnya adalah  depstransitifnya) untuk Python 2 atau Python
          3. Nilai yang valid adalah"PY2"dan"PY3"(default).Versi Python selalu direset (mungkin secara default) ke versi apa pun yang ditentukan oleh atribut ini, terlepas dari versi yang ditentukan di command line atau oleh target yang lebih tinggi lainnya yang bergantung pada target ini. Jika Anda ingin  Peringatan bug: Atribut ini menetapkan versi yang digunakan Bazel untuk membangun target Anda,
          tetapi karena #4815, skrip stub yang dihasilkan mungkin masih memanggil versi interpreter yang salah saat runtime. Lihat
          solusi
          ini, yang melibatkan penentuan target  | 
| srcs_version | String; default-nya adalah  srcstarget agar kompatibel dengan Python
          2, Python 3, atau keduanya. Untuk benar-benar menyetel versi runtime Python, gunakan atributpython_versiondari
          aturan Python yang dapat dieksekusi (py_binaryataupy_test).Nilai yang diizinkan adalah:  Perhatikan bahwa hanya aturan yang dapat dieksekusi ( Untuk mendapatkan informasi diagnostik tentang dependensi mana yang memperkenalkan persyaratan versi,
          Anda dapat menjalankan aspek  
          bazel build <your target> \
              --aspects=@rules_python//python:defs.bzl%find_requirements \
              --output_groups=pyversioninfo
          -pyversioninfo.txtyang memberikan informasi
          tentang alasan target Anda memerlukan satu versi Python atau versi lainnya. Perhatikan bahwa fitur ini berfungsi meskipun
          target yang diberikan gagal dibuat karena konflik versi. | 
| stamp | Bilangan bulat; defaultnya adalah  | 
py_runtime
Lihat sumber aturanpy_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)
Mewakili runtime Python yang digunakan untuk menjalankan kode Python.
Target py_runtime dapat merepresentasikan runtime platform atau
runtime dalam build. Runtime platform mengakses interpreter yang diinstal sistem di jalur yang diketahui, sedangkan runtime dalam build mengarah ke target yang dapat dieksekusi yang bertindak sebagai interpreter. Dalam
kedua kasus, "interpreter" berarti biner yang dapat dieksekusi atau skrip wrapper yang mampu
menjalankan skrip Python yang diteruskan di command line, mengikuti konvensi yang sama dengan interpreter
CPython standar.
Runtime platform pada dasarnya bersifat non-hermetik. Hal ini memaksakan persyaratan pada platform target untuk memiliki interpreter yang berada di jalur tertentu. Runtime bawaan mungkin hermetik atau tidak, bergantung pada apakah runtime tersebut mengarah ke interpreter yang di-check-in atau skrip wrapper yang mengakses interpreter sistem.
Contoh:
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. | 
| bootstrap_template | Label; defaultnya adalah  | 
| coverage_tool | Label; defaultnya adalah  py_binarydanpy_test.Jika disetel, target harus menghasilkan satu file atau menjadi target yang dapat dieksekusi. Jalur ke satu file, atau file yang dapat dieksekusi jika targetnya dapat dieksekusi, menentukan titik entri untuk alat cakupan python. Target dan runfilenya akan ditambahkan ke runfile saat cakupan diaktifkan. Titik entri untuk alat harus dapat dimuat oleh interpreter python (misalnya, file
         | 
| files | Daftar label; defaultnya adalah  | 
| interpreter | Label; defaultnya adalah  | 
| interpreter_path | String; default-nya adalah  | 
| python_version | String; default-nya adalah  "PY2"dan"PY3".Nilai default dikontrol oleh flag  | 
| stub_shebang | String; default-nya adalah  py_binary.Lihat masalah 8685 untuk motivasi. Tidak berlaku untuk Windows. |