Python Kuralları

Sorun bildir Kaynağı görüntüle Nightly · 8.0 . 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Kurallar

py_binary

Kural kaynağını görüntüleme
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)

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiketler listesi; varsayılan değer []'dir.

Hedefe bağlanacak ek kitaplıkların listesi. Genellikle kurallarla tanımlanan [`deps` özelliğiyle](https://bazel.build/reference/be/common-definitions#typical-attributes) ilgili yorumları inceleyin. Bunlar genellikle "py_library" kurallarıdır. Yalnızca çalışma zamanında kullanılan veri dosyalarını sağlayan hedefler "data" özelliğine aittir.
srcs

Etiketler listesi; zorunlu

Hedefi oluşturmak için işlenen Python kaynak dosyalarının listesi. Bu, tüm kodunuzu içerir ve oluşturulan kaynak dosyaları içerebilir. ".py" dosyaları "srcs", kitaplık hedefleri ise "deps" bölümüne girer. Çalışma zamanında ihtiyaç duyulabilecek diğer ikili dosyalar "data" bölümüne girer.
data

Etiketler listesi; varsayılan değer []'dir.

Bu kitaplığın çalışma zamanında ihtiyaç duyduğu dosyaların listesi. Genellikle kurallarla tanımlanan [`data` özelliğiyle](https://bazel.build/reference/be/common-definitions#typical-attributes) ilgili yorumları inceleyin. "cc_embed_data" ve "go_embed_data" gibi bir "py_embed_data" yoktur. Bunun nedeni, Python'da çalışma zamanı kaynakları kavramının olmasıdır.
imports

Dize listesi; varsayılan değer []'tir.

PYTHONPATH'a eklenecek içe aktarma dizinlerinin listesi. "Değişken oluştur" yerine koyma işlemine tabidir. Bu içe aktarma dizinleri, bu kural ve bu kurala bağlı tüm kurallar için eklenir (not: bu kuralın bağlı olduğu kurallar için değil). Her dizin, bu kurala bağlı "py_binary" kuralları tarafından "PYTHONPATH"a eklenir. Dizelerin repo-runfiles-root ile ilişkili olması gerekir. Mutlak yollara ("/" ile başlayan yollar) ve yürütme kökünün üstündeki bir yola referans veren yollara izin verilmez ve bu tür yollar hata verir.
legacy_create_init

Tam sayı; varsayılan değer -1'tür

Runfiles ağacında, boş "__init__.py" dosyalarının dolaylı olarak oluşturulup oluşturulmayacağı. Bunlar, Python kaynak kodu veya paylaşılan kitaplıklar içeren her dizinde ve depo kök dizini hariç bu dizinlerin her üst dizininde oluşturulur. Varsayılan değer olan `-1` (otomatik), `--incompatible_default_to_explicit_init_py` kullanılmıyorsa doğru anlamına gelir. Yanlış ise kullanıcı, "__init__.py" dosyalarını (boş olabilir) oluşturmaktan ve gerektiğinde Python hedeflerinin "srcs" bölümüne eklemekten sorumludur.
main

Etiket; varsayılan değer None'dir.

İsteğe bağlı; uygulamanın ana giriş noktası olan kaynak dosyanın adı. Bu dosya, `srcs` içinde de listelenmelidir. Belirtilmemişse bunun yerine, `.py` eklenmiş şekilde `name` kullanılır. "name", "srcs" içindeki dosya adlarından hiçbiriyle eşleşmiyorsa "main" belirtilmelidir.
precompile

Dize; varsayılan değer "inherit"'tir

**Bu hedef için** py kaynak dosyalarının önceden derlenip derlenmeyeceği. Değerler: * `inherit`: Önceden derlenmiş dosyaların kullanılıp kullanılmayacağına alt akış ikilisinin karar vermesine izin verin. * `enabled`: Python kaynak dosyalarını derleme zamanında derleyin. * `disabled`: Python kaynak dosyaları derleme sırasında derlenmez. :::{seealso} * Bazı durumlarda bu özelliği geçersiz kılabilen ve derleme sırasında tüm hedefleri etkileyen {flag}`--precompile` işaretçisi. * Hedef bazında önceden derlemeyi geçişli olarak etkinleştirmek için {obj}`pyc_collection` özelliği. * Önceden derlemeyi kullanmayla ilgili kılavuz için [Önceden derleme](precompiling) dokümanları. :::
precompile_invalidation_mode

Dize; varsayılan değer "auto"'tir

Önceden derlenmiş dosyaların, ilişkili kaynak dosyalarıyla güncel olup olmadığının nasıl doğrulanacağı. Olası değerler şunlardır: * `auto`: Etkin değer, diğer derleme ayarlarına göre otomatik olarak belirlenir. * `checked_hash`: Kaynak dosyanın karması, pyc dosyasında kaydedilen karmayla eşleşirse pyc dosyasını kullanın. Bu özellik, üzerinde değişiklik yapabileceğiniz kodlarla çalışırken en çok işinize yarar. * `unchecked_hash`: Her zaman pyc dosyasını kullanın; pyc'nin karma değerini kaynak dosyayla karşılaştırmayın. Bu yöntem, kod üzerinde değişiklik yapılmayacağı durumlarda en yararlı olanıdır. pyc geçersiz kılma modları hakkında daha fazla bilgi için https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode adresine bakın.
precompile_optimize_level

Tam sayı; varsayılan değer 0'tür

Önceden derlenmiş dosyalar için optimizasyon düzeyi. Optimizasyon seviyeleri hakkında daha fazla bilgi için https://docs.python.org/3/library/functions.html#compile adresindeki "compile()` işlevinin "optimize" bağımsız değişkeni belgelerine bakın. NOT: "-1" değeri "mevcut yorumlayıcı" anlamına gelir. Bu, kodun gerçekten çalıştığı çalışma zamanında kullanılan yorumlayıcı değil, _pyc'lerin oluşturulduğu derleme zamanında_ kullanılan yorumlayıcıdır.
precompile_source_retention

Dize; varsayılan değer "inherit"'tir

Bir kaynak dosya derlenirken kaynak dosyanın elde edilen çıkışta tutulup tutulmayacağını belirler. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile_source_retention` işaretinden devralın. * `keep_source`: Orijinal Python kaynağını dahil edin. * `omit_source`: Orijinal py kaynağını dahil etmeyin.
pyc_collection

Dize; varsayılan değer "inherit"'tir

Bağımlılıklardaki pyc dosyalarının manuel olarak eklenip eklenmeyeceğini belirler. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile` parametresinden devralın. * `include_pyc`: Bağımlılıklardan dolaylı olarak oluşturulan pyc dosyalarını ekleyin. Örneğin, {attr}`precompile="inherit"` parametresini belirten hedefler için pyc dosyaları. * `disabled`: Dolaylı olarak oluşturulan pyc dosyaları eklenmez. pyc dosyalarının, hedef düzeyde ön derlemeyi etkinleştiren bağımlılıklardan gelmeye devam edebileceğini unutmayın.
python_version

Dize; varsayılan değer "PY3"'tir

Devre dışı, kullanılmayan, hiçbir işlem yapmaz.
srcs_version

Dize; varsayılan değer "PY2AND3"'tir

Devre dışı, kullanılmayan, hiçbir işlem yapmaz.
stamp

Tam sayı; varsayılan değer -1'tür

Derleme bilgilerinin ikili dosyaya kodlanıp kodlanmayacağı. Olası değerler: * `stamp = 1`: `--nostamp` derlemelerinde bile derleme bilgilerini her zaman ikili dosyaya damgalayın. İkili dosyanın ve ona bağlı tüm yayın sonrası işlemlerin uzaktan önbelleğe alınmasını engelleyebileceği için **bu ayardan kaçınılmalıdır**. * `stamp = 0`: Derleme bilgilerini her zaman sabit değerlerle değiştirin. Bu sayede iyi bir derleme sonucu önbelleğe alma işlemi gerçekleştirilir. * `stamp = -1`: Derleme bilgilerinin yerleştirilmesi, `--[no]stamp` işaretçisi tarafından kontrol edilir. Damgalanmış ikili dosyalar, bağımlılıklarının değişmesi dışında yeniden derlenmez. UYARI: Damgalama, önbellek isabetlerini azaltarak derleme performansını olumsuz etkileyebilir. Mümkünse damgalamaya başvurulmamalıdır.

py_library

Kural kaynağını görüntüleme
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)
Güvenilir bir Python kodu kitaplığı. Varsayılan çıkışlar: * Giriş Python kaynakları * Kaynaklardaki önceden derlenmiş yapılardır. NOT: Ön derleme, varsayılan çıkışlardan hangilerinin oluşturulan çalıştırma dosyalarına dahil edileceğini etkiler. Daha fazla bilgi için önceden derlemeyle ilgili özelliklere ve işaretlere bakın. :::{versionchanged} 0.37.0 Kaynak dosyalar artık doğrudan çalışma dosyalarına eklenmiyor. :::

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiketler listesi; varsayılan değer []'dir.

Hedefe bağlanacak ek kitaplıkların listesi. Genellikle kurallarla tanımlanan [`deps` özelliğiyle](https://bazel.build/reference/be/common-definitions#typical-attributes) ilgili yorumları inceleyin. Bunlar genellikle "py_library" kurallarıdır. Yalnızca çalışma zamanında kullanılan veri dosyalarını sağlayan hedefler "data" özelliğine aittir.
srcs

Etiketler listesi; varsayılan değer []'dir.

Hedefi oluşturmak için işlenen Python kaynak dosyalarının listesi. Bu, tüm kodunuzu içerir ve oluşturulan kaynak dosyaları içerebilir. ".py" dosyaları "srcs", kitaplık hedefleri ise "deps" bölümüne girer. Çalışma zamanında ihtiyaç duyulabilecek diğer ikili dosyalar "data" bölümüne girer.
data

Etiketler listesi; varsayılan değer []'dir.

Bu kitaplığın çalışma zamanında ihtiyaç duyduğu dosyaların listesi. Genellikle kurallarla tanımlanan [`data` özelliğiyle](https://bazel.build/reference/be/common-definitions#typical-attributes) ilgili yorumları inceleyin. "cc_embed_data" ve "go_embed_data" gibi bir "py_embed_data" yoktur. Bunun nedeni, Python'da çalışma zamanı kaynakları kavramının olmasıdır.
imports

Dize listesi; varsayılan değer []'tir.

PYTHONPATH'a eklenecek içe aktarma dizinlerinin listesi. "Değişken oluştur" yerine koyma işlemine tabidir. Bu içe aktarma dizinleri, bu kural ve bu kurala bağlı tüm kurallar için eklenir (not: bu kuralın bağlı olduğu kurallar için değil). Her dizin, bu kurala bağlı "py_binary" kuralları tarafından "PYTHONPATH"a eklenir. Dizelerin repo-runfiles-root ile ilişkili olması gerekir. Mutlak yollara ("/" ile başlayan yollar) ve yürütme kökünün üstündeki bir yola referans veren yollara izin verilmez ve bu tür yollar hata verir.
precompile

Dize; varsayılan değer "inherit"'tir

**Bu hedef için** py kaynak dosyalarının önceden derlenip derlenmeyeceği. Değerler: * `inherit`: Önceden derlenmiş dosyaların kullanılıp kullanılmayacağına alt akış ikilisinin karar vermesine izin verin. * `enabled`: Python kaynak dosyalarını derleme zamanında derleyin. * `disabled`: Python kaynak dosyaları derleme sırasında derlenmez. :::{seealso} * Bazı durumlarda bu özelliği geçersiz kılabilen ve derleme sırasında tüm hedefleri etkileyen {flag}`--precompile` işaretçisi. * Hedef bazında önceden derlemeyi geçişli olarak etkinleştirmek için {obj}`pyc_collection` özelliği. * Önceden derlemeyi kullanmayla ilgili kılavuz için [Önceden derleme](precompiling) dokümanları. :::
precompile_invalidation_mode

Dize; varsayılan değer "auto"'tir

Önceden derlenmiş dosyaların, ilişkili kaynak dosyalarıyla güncel olup olmadığının nasıl doğrulanacağı. Olası değerler şunlardır: * `auto`: Etkin değer, diğer derleme ayarlarına göre otomatik olarak belirlenir. * `checked_hash`: Kaynak dosyanın karması, pyc dosyasında kaydedilen karmayla eşleşirse pyc dosyasını kullanın. Bu özellik, üzerinde değişiklik yapabileceğiniz kodlarla çalışırken en çok işinize yarar. * `unchecked_hash`: Her zaman pyc dosyasını kullanın; pyc'nin karma değerini kaynak dosyayla karşılaştırmayın. Bu yöntem, kod üzerinde değişiklik yapılmayacağı durumlarda en yararlı olanıdır. pyc geçersiz kılma modları hakkında daha fazla bilgi için https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode adresine bakın.
precompile_optimize_level

Tam sayı; varsayılan değer 0'tür

Önceden derlenmiş dosyalar için optimizasyon düzeyi. Optimizasyon seviyeleri hakkında daha fazla bilgi için https://docs.python.org/3/library/functions.html#compile adresindeki "compile()` işlevinin "optimize" bağımsız değişkeni belgelerine bakın. NOT: "-1" değeri "mevcut yorumlayıcı" anlamına gelir. Bu, kodun gerçekten çalıştığı çalışma zamanında kullanılan yorumlayıcı değil, _pyc'lerin oluşturulduğu derleme zamanında_ kullanılan yorumlayıcıdır.
precompile_source_retention

Dize; varsayılan değer "inherit"'tir

Bir kaynak dosya derlenirken kaynak dosyanın elde edilen çıkışta tutulup tutulmayacağını belirler. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile_source_retention` işaretinden devralın. * `keep_source`: Orijinal Python kaynağını dahil edin. * `omit_source`: Orijinal py kaynağını dahil etmeyin.
srcs_version

Dize; varsayılan değer "PY2AND3"'tir

Devre dışı, kullanılmayan, hiçbir işlem yapmaz.

py_test

Kural kaynağını görüntüleme
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)

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

deps

Etiketler listesi; varsayılan değer []'dir.

Hedefe bağlanacak ek kitaplıkların listesi. Genellikle kurallarla tanımlanan [`deps` özelliğiyle](https://bazel.build/reference/be/common-definitions#typical-attributes) ilgili yorumları inceleyin. Bunlar genellikle "py_library" kurallarıdır. Yalnızca çalışma zamanında kullanılan veri dosyalarını sağlayan hedefler "data" özelliğine aittir.
srcs

Etiketler listesi; zorunlu

Hedefi oluşturmak için işlenen Python kaynak dosyalarının listesi. Bu, tüm kodunuzu içerir ve oluşturulan kaynak dosyaları içerebilir. ".py" dosyaları "srcs", kitaplık hedefleri ise "deps" bölümüne girer. Çalışma zamanında ihtiyaç duyulabilecek diğer ikili dosyalar "data" bölümüne girer.
data

Etiketler listesi; varsayılan değer []'dir.

Bu kitaplığın çalışma zamanında ihtiyaç duyduğu dosyaların listesi. Genellikle kurallarla tanımlanan [`data` özelliğiyle](https://bazel.build/reference/be/common-definitions#typical-attributes) ilgili yorumları inceleyin. "cc_embed_data" ve "go_embed_data" gibi bir "py_embed_data" yoktur. Bunun nedeni, Python'da çalışma zamanı kaynakları kavramının olmasıdır.
imports

Dize listesi; varsayılan değer []'tir.

PYTHONPATH'a eklenecek içe aktarma dizinlerinin listesi. "Değişken oluştur" yerine koyma işlemine tabidir. Bu içe aktarma dizinleri, bu kural ve bu kurala bağlı tüm kurallar için eklenir (not: bu kuralın bağlı olduğu kurallar için değil). Her dizin, bu kurala bağlı "py_binary" kuralları tarafından "PYTHONPATH"a eklenir. Dizelerin repo-runfiles-root ile ilişkili olması gerekir. Mutlak yollara ("/" ile başlayan yollar) ve yürütme kökünün üstündeki bir yola referans veren yollara izin verilmez ve bu tür yollar hata verir.
legacy_create_init

Tam sayı; varsayılan değer -1'tür

Runfiles ağacında, boş "__init__.py" dosyalarının dolaylı olarak oluşturulup oluşturulmayacağı. Bunlar, Python kaynak kodu veya paylaşılan kitaplıklar içeren her dizinde ve depo kök dizini hariç bu dizinlerin her üst dizininde oluşturulur. Varsayılan değer olan `-1` (otomatik), `--incompatible_default_to_explicit_init_py` kullanılmıyorsa doğru anlamına gelir. Yanlış ise kullanıcı, "__init__.py" dosyalarını (boş olabilir) oluşturmaktan ve gerektiğinde Python hedeflerinin "srcs" bölümüne eklemekten sorumludur.
main

Etiket; varsayılan değer None'dir.

İsteğe bağlı; uygulamanın ana giriş noktası olan kaynak dosyanın adı. Bu dosya, `srcs` içinde de listelenmelidir. Belirtilmemişse bunun yerine, `.py` eklenmiş şekilde `name` kullanılır. "name", "srcs" içindeki dosya adlarından hiçbiriyle eşleşmiyorsa "main" belirtilmelidir.
precompile

Dize; varsayılan değer "inherit"'tir

**Bu hedef için** py kaynak dosyalarının önceden derlenip derlenmeyeceği. Değerler: * `inherit`: Önceden derlenmiş dosyaların kullanılıp kullanılmayacağına alt akış ikilisinin karar vermesine izin verin. * `enabled`: Python kaynak dosyalarını derleme zamanında derleyin. * `disabled`: Python kaynak dosyaları derleme sırasında derlenmez. :::{seealso} * Bazı durumlarda bu özelliği geçersiz kılabilen ve derleme sırasında tüm hedefleri etkileyen {flag}`--precompile` işaretçisi. * Hedef bazında önceden derlemeyi geçişli olarak etkinleştirmek için {obj}`pyc_collection` özelliği. * Önceden derlemeyi kullanmayla ilgili kılavuz için [Önceden derleme](precompiling) dokümanları. :::
precompile_invalidation_mode

Dize; varsayılan değer "auto"'tir

Önceden derlenmiş dosyaların, ilişkili kaynak dosyalarıyla güncel olup olmadığının nasıl doğrulanacağı. Olası değerler şunlardır: * `auto`: Etkin değer, diğer derleme ayarlarına göre otomatik olarak belirlenir. * `checked_hash`: Kaynak dosyanın karması, pyc dosyasında kaydedilen karmayla eşleşirse pyc dosyasını kullanın. Bu özellik, üzerinde değişiklik yapabileceğiniz kodlarla çalışırken en çok işinize yarar. * `unchecked_hash`: Her zaman pyc dosyasını kullanın; pyc'nin karma değerini kaynak dosyayla karşılaştırmayın. Bu yöntem, kod üzerinde değişiklik yapılmayacağı durumlarda en yararlı olanıdır. pyc geçersiz kılma modları hakkında daha fazla bilgi için https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode adresine bakın.
precompile_optimize_level

Tam sayı; varsayılan değer 0'tür

Önceden derlenmiş dosyalar için optimizasyon düzeyi. Optimizasyon seviyeleri hakkında daha fazla bilgi için https://docs.python.org/3/library/functions.html#compile adresindeki "compile()` işlevinin "optimize" bağımsız değişkeni belgelerine bakın. NOT: "-1" değeri "mevcut yorumlayıcı" anlamına gelir. Bu, kodun gerçekten çalıştığı çalışma zamanında kullanılan yorumlayıcı değil, _pyc'lerin oluşturulduğu derleme zamanında_ kullanılan yorumlayıcıdır.
precompile_source_retention

Dize; varsayılan değer "inherit"'tir

Bir kaynak dosya derlenirken kaynak dosyanın elde edilen çıkışta tutulup tutulmayacağını belirler. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile_source_retention` işaretinden devralın. * `keep_source`: Orijinal Python kaynağını dahil edin. * `omit_source`: Orijinal py kaynağını dahil etmeyin.
pyc_collection

Dize; varsayılan değer "inherit"'tir

Bağımlılıklardaki pyc dosyalarının manuel olarak eklenip eklenmeyeceğini belirler. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile` parametresinden devralın. * `include_pyc`: Bağımlılıklardan dolaylı olarak oluşturulan pyc dosyalarını ekleyin. Örneğin, {attr}`precompile="inherit"` parametresini belirten hedefler için pyc dosyaları. * `disabled`: Dolaylı olarak oluşturulan pyc dosyaları eklenmez. pyc dosyalarının, hedef düzeyde ön derlemeyi etkinleştiren bağımlılıklardan gelmeye devam edebileceğini unutmayın.
python_version

Dize; varsayılan değer "PY3"'tir

Devre dışı, kullanılmayan, hiçbir işlem yapmaz.
srcs_version

Dize; varsayılan değer "PY2AND3"'tir

Devre dışı, kullanılmayan, hiçbir işlem yapmaz.
stamp

Tam sayı; varsayılan değer 0'tür

Derleme bilgilerinin ikili dosyaya kodlanıp kodlanmayacağı. Olası değerler: * `stamp = 1`: `--nostamp` derlemelerinde bile derleme bilgilerini her zaman ikili dosyaya damgalayın. İkili dosyanın ve ona bağlı tüm yayın sonrası işlemlerin uzaktan önbelleğe alınmasını engelleyebileceği için **bu ayardan kaçınılmalıdır**. * `stamp = 0`: Derleme bilgilerini her zaman sabit değerlerle değiştirin. Bu sayede iyi bir derleme sonucu önbelleğe alma işlemi gerçekleştirilir. * `stamp = -1`: Derleme bilgilerinin yerleştirilmesi, `--[no]stamp` işaretçisi tarafından kontrol edilir. Damgalanmış ikili dosyalar, bağımlılıklarının değişmesi dışında yeniden derlenmez. UYARI: Damgalama, önbellek isabetlerini azaltarak derleme performansını olumsuz etkileyebilir. Mümkünse damgalamaya başvurulmamalıdır.

py_runtime

Kural kaynağını görüntüleme
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 kodunu yürütmek için kullanılan bir Python çalışma zamanını temsil eder. "py_runtime" hedefi, *platform çalışma zamanı* veya *yerleşik çalışma zamanı* temsil edebilir. Platform çalışma zamanı, bilinen bir yolda sistem tarafından yüklenen bir yorumlayıcıya erişirken yerleşik çalışma zamanı, yorumlayıcı görevi gören bir yürütülebilir hedefi işaret eder. Her iki durumda da "yorumlayıcı", standart CPython yorumlayıcısıyla aynı kuralları izleyerek komut satırında iletilen bir Python komut dosyasını çalıştırabilen tüm yürütülebilir ikili dosyalar veya sarmalayıcı komut dosyalarını ifade eder. Platform çalışma zamanı, doğası gereği hermetik değildir. Hedef platformda belirli bir yolda bir yorumlayıcı bulunması şartı getirir. Derleme içi çalışma zamanı, kontrollü bir yorumlayıcıya mı yoksa sistem yorumlayıcısına erişen bir sarmalayıcı komut dosyasına mı işaret ettiğine bağlı olarak hermetik olabilir veya olmayabilir. Örnek ``` 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", ) ```

Bağımsız değişkenler

Özellikler
name

Ad; zorunlu

Bu hedef için benzersiz bir ad.

abi_flags

Dize; varsayılan değer ""'tir

Çalışma zamanının ABI işaretleri (ör. `sys.abiflags`). Ayarlanmamışsa işaretlere göre ayarlanır.
bootstrap_template

Etiket; varsayılan değer "@rules_python//python/private:bootstrap_template"'dir.

Kullanılacak önyükleme komut dosyası şablon dosyası. %python_binary%, %workspace_name%, %main% ve %imports% içermelidir. Bu şablon, genişletildikten sonra süreci başlatmak için kullanılan yürütülebilir dosya haline gelir. Bu nedenle, Python yorumlayıcısını bulma, çalıştırma dosyaları ve amaçlanan Python uygulamasını çalıştırmak için bir ortam oluşturma gibi ilk önyükleme işlemlerinden sorumludur. Bu özellik şu anda isteğe bağlı olsa da Python kuralları Bazel'den çıkarıldığında gerekli hale gelecektir. Genişletilmiş tam değişken adları kararsız bir API'dir ve değişiklik gösterebilir. Python kuralları Bazel'den çıkarıldığında API daha kararlı hale gelecektir. Daha fazla değişken için @bazel_tools//tools/python:python_bootstrap_template.txt dosyasına bakın.
coverage_tool

Etiket; varsayılan değer None'dir.

Bu, {rule}`py_binary` ve {rule}`py_test` hedeflerinden kod kapsamı bilgilerini toplamak için kullanılacak bir hedeftir. Ayarlanırsa hedef tek bir dosya oluşturmalı veya yürütülebilir bir hedef olmalıdır. Tek dosyanın yolu veya hedef yürütülebilir bir dosyaysa yürütülebilir dosyanın yolu, python kapsam aracının giriş noktasını belirler. Kapsam etkinleştirildiğinde hedef ve çalışma dosyaları çalışma dosyalarına eklenir. Aracın giriş noktası, bir Python yorumlayıcısı tarafından yüklenebilir olmalıdır (ör. bir `.py` veya `.pyc` dosyası). En azından "run" ve "lcov" alt komutlarını içeren [`coverage.py`](https://coverage.readthedocs.io) komut satırı bağımsız değişkenlerini kabul etmelidir.
files

Etiketler listesi; varsayılan değer []'dir.

Yerleşik çalışma zamanında bu, çalışma zamanını oluşturan dosya grubudur. Bu dosyalar, bu çalışma zamanını kullanan Python ikili dosyalarının çalışma dosyalarına eklenir. Platform çalışma zamanı için bu özellik ayarlanmamalıdır.
implementation_name

Dize; varsayılan değer "cpython"'tir

Python uygulama adı ("sys.implementation.name")
interpreter

Etiket; varsayılan değer None'dir.

Derleme içi çalışma zamanında bu, yorumlayıcı olarak çağrılacak hedeftir. Aşağıdakilerden biri olabilir: * Yorumlayıcı ikili dosyası olan tek bir dosya. Bu tür yorumlayıcıların kendi kendine yeten tek dosyalık yürütülebilir dosyalar olduğu veya destekleyici dosyaların "dosyalar" bölümünde belirtildiği varsayılır. * Yürütülebilir bir hedef. Hedefin yürütülebilir dosyası, yorumlayıcı ikili dosyası olacaktır. Diğer tüm varsayılan çıkışlar ("target.files") ve düz dosya çalıştırma dosyaları ("runfiles.files") "files" özelliğinde belirtilmiş gibi otomatik olarak eklenir. NOT: Hedefin çalışma dosyaları henüz araç seti/yorumlayıcının tüketicilerine düzgün şekilde aktarılmamış/uygulanmayabilir. bazelbuild/rules_python/issues/1612 adresine bakın. Platform çalışma zamanında (ör. "interpreter_path" ayarlanmışsa) bu özellik ayarlanmamalıdır.
interpreter_path

Dize; varsayılan değer ""'tir

Platform çalışma zamanı için bu, hedef platformdaki bir Python yorumlayıcısının mutlak yoludur. Yerleşik çalışma zamanında bu özellik ayarlanmamalıdır.
interpreter_version_info

Sözlük: Dize -> Dize; varsayılan değer {}'tir

Bu çalışma zamanında sağlanan yorumlayıcıyla ilgili sürüm bilgileri. Belirtilmemişse {obj}`--python_version` kullanılır Desteklenen anahtarlar, `sys.version_info` adlarıyla eşleşir. Giriş değerleri dize olsa da çoğu int'e dönüştürülür. Desteklenen anahtarlar şunlardır: * major: int, ana sürüm numarası * minor: int, alt sürüm numarası * micro: isteğe bağlı int, mikro sürüm numarası * releaselevel: isteğe bağlı str, sürüm seviyesi * serial: isteğe bağlı int, sürümün seri numarası :::{versionchanged} 0.36.0 {obj}`--python_version`, varsayılan değeri belirler. :::
pyc_tag

Dize; varsayılan değer ""'tir

İsteğe bağlı dize; pyc dosya adının etiket kısmı (ör. "foo.cpython-39.pyc" dosyasının "cpython-39" iç eklemesi). PEP 3147'ye bakın. Belirtilmemişse "implementation_name" ve "interpreter_version_info" değerleri kullanılarak hesaplanır. pyc_tag yoksa yalnızca kaynaksız pyc oluşturma işlemi düzgün çalışır.
python_version

Dize; varsayılan değer "PY3"'tir

Bu çalışma zamanının Python ana sürümü 2 mi yoksa 3 mü olduğu. Geçerli değerler"PY2" ve"PY3"dir. Varsayılan değer, `--incompatible_py3_is_default` işaretçisi tarafından kontrol edilir. Ancak gelecekte bu özellik zorunlu olacak ve varsayılan bir değeri olmayacak.
stage2_bootstrap_template

Etiket; varsayılan değer "@rules_python//python/private:stage2_bootstrap_template"'dir.

İki aşamalı önyükleme etkinleştirildiğinde kullanılacak şablon :::{seealso} {obj}`PyRuntimeInfo.stage2_bootstrap_template` ve {obj}`--bootstrap_impl` :::
stub_shebang

Dize; varsayılan değer "#!/usr/bin/env python3"'tir

{rule}`py_binary` hedefleri yürütülürken kullanılan önyükleme Python stub komut dosyasına eklenen "Shebang" ifadesi. Nedenini öğrenmek için https://github.com/bazelbuild/bazel/issues/8685 adresine bakın. Windows için geçerli değildir.
zip_main_template

Etiket; varsayılan değer "@rules_python//python/private:zip_main_template"'dir.

Bir zip'in üst düzey "__main__.py" dosyası için kullanılacak şablon. Bu, "python foo.zip" çalıştırıldığında yürütülen giriş noktası olur. :::{seealso} {obj}`PyRuntimeInfo.zip_main_template` alanı. :::