Python Kuralları

. Sorun bildir Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

Kurallar

py_binary

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

Etiket listesi; varsayılan değer []

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 "veriler"e aittir özelliğini gönderin.
srcs

Etiketler listesi; zorunlu

Hedefi oluşturmak için işlenen Python kaynak dosyalarının listesi. Bu giriş kodunuzun tamamını 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

Etiket listesi; varsayılan değer []

Çalışma zamanında bu kitaplığın ihtiyaç duyduğu dosyaların listesi. Şununla ilgili yorumları göster: genellikle kurallar tarafından tanımlanan ["data" özelliği](https://bazel.build/reference/be/common-definitions#typical-attributes). "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, (not: bu kuralın kurallarını değil, bu kuralın duruma göre değişir. Her dizin "py_binary" kuralları ile "PYTHONPATH" öğesine eklenir bu kurala göre değişir. Dizeler repo-runfiles-root göreli, Mutlak yollar ("/" ile başlayan yollar) ve bir yola referans veren yollar ifadelerinin kullanılmasına izin verilmez ve bu işlem hatayla sonuçlanır.
legacy_create_init

Integer; varsayılan değer -1

Runfiles ağacında, boş "__init__.py" dosyalarının dolaylı olarak oluşturulup oluşturulmayacağı. Bunlar Python kaynak kodunu içeren her dizinde oluşturulur veya paylaşılan kitaplıkları ve depo hariç bu dizinlerin tüm üst dizini kök dizin. 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ı oluşturmaktan ve bunları Python hedeflerinin "srcs"ini ayarlayın.
main

Etiket; varsayılan değer None

İsteğe bağlı; uygulamanın ana giriş noktası olan kaynak dosyanın adı. Bu dosya "srcs" öğesinde de listelenmelidir. Belirtilmemişse Bunun yerine, ".py" eklenmiş "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 derlenmediği. Değerler: * `devral`: {flag}`--preder` işaretinden değeri belirleyin. * "enabled": Python kaynak dosyalarını derleme sırasında derler. --precompile_add_to_runfiles parametresinin, derlenmiş dosyaların alt akış ikilisine nasıl dahil edildiğini etkilediğini unutmayın. * "devre dışı": Derleme sırasında Python kaynak dosyalarını derlemeyin. * `if_generated_source`: Yalnızca oluşturulmuş dosya ise Python kaynak dosyalarını derleyin. :::{seealso} * Bazı durumlarda bu özelliği geçersiz kılabilen {flag}`--preder` işareti ve oluşturma sırasında tüm hedefleri etkiler. * Şu tarihte önceden derlemeyi geçişli olarak etkinleştirmek için {obj}`pyc_collection` özelliği ödeme yapar. * Önceden derlemeyi kullanma hakkında bir kılavuz için [Önceden derleme](önceden derleme) belgeleri. :::
precompile_invalidation_mode

String; varsayılan değer "auto"

Ö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ılmadığında en yararlı yöntemdir. 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

Integer; varsayılan değer 0

Ö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

Kaynak dosyanın ne zaman derlendiğini, kaynak dosyanın saklanıp saklanmayacağını belirler çıkarımlarda bulunmayacaktır. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile_source_retention` işaretinden devralın. * "keep_source": Orijinal Python kaynağını ekleyin. * "omit_source": Orijinal py kaynağını eklemeyin. * "omit_if_generate_source": Normal bir kaynaksa orijinal kaynağı korur dosyası olarak oluşturabilirsiniz, ancak oluşturulmuş bir dosyaysa bunu atlayın.
pyc_collection

String; varsayılan değer "inherit"

Bağımlılıklardaki pyc dosyalarının manuel olarak eklenip eklenmeyeceğini belirler. NOT: Bu ayar yalnızca {flag}`--precompile_add_to_runfiles=decided_elsewhere` ile birlikte kullanışlıdır. Geçerli değerler şunlardır: * `inherit`: Değeri {flag}`--pyc_collection` parametresinden devralın. * `include_pyc`: İkili dosyadaki bağımlılıklardan pyc dosyaları ekleyin ({obj}`PyInfo.transitive_pyc_files` değerinden). * `disabled`: Bağımlılıklardan pyc dosyalarını açıkça eklemeyin. Bir hedef, pyc dosyalarını çalışma dosyalarının bir parçası olarak içeriyorsa (ör. {obj}`--precompile_add_to_runfiles=always` kullanıldığında) bu dosyaların yine de bağımlılıklardan gelebileceğ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

Kullanım dışı, kullanılmayan, hiçbir şey 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, derleme sonucu önbelleğe iyi bir şekilde alınır. * `stamp = -1`: Derleme bilgilerinin yerleştirilmesi, `--[no]stamp` işaretçisi tarafından kontrol edilir. Bağımlılıkları değişmediği sürece damgalı ikili programlar yeniden oluşturulmaz. UYARI: Damgalama, önbellek isabetlerini azaltarak derleme performansına zarar verebilir ve kaçınılmalıdır.

py_library

Kural kaynağını görüntüle
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ı * Kaynaklardan alınan önceden derlenmiş eserler. 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.

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. Şununla ilgili yorumları göster: genellikle rules](https://bazel.build/reference/be/common-definitions#typical-attributes). 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. İlgili içeriği oluşturmak için kullanılan ".py" dosyaları "srcs" öğesine, kitaplık hedefleri ise "deps"e ait. Diğer ikili Çalışma zamanında ihtiyaç duyabilecek dosyalar "veriler"e aittir.
data

Etiket listesi; varsayılan değer []

Bu kitaplığın çalışma zamanında ihtiyaç duyduğu dosyaların listesi. Şu konuyla ilgili yorumları göster: genellikle kurallar tarafından tanımlanan ["data" özelliği](https://bazel.build/reference/be/common-definitions#typical-attributes). "cc_embed_data" ve "go_embed_data" gibi "py_embed_data" verileri yoktur. Bunun nedeni, Python'un bir çalışma zamanı kaynakları kavramı 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. Kesin yollara ("/" ile başlayan yollar) ve yürütme kökünün üzerindeki 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 derlenmediği. Değerler: * `devral`: {flag}`--preder` işaretinden değeri belirleyin. * "enabled": Python kaynak dosyalarını derleme sırasında derler. --precompile_add_to_runfiles parametresinin, derlenmiş dosyaların alt akış ikilisine nasıl dahil edildiğini etkilediğini unutmayın. * "devre dışı": Derleme sırasında Python kaynak dosyalarını derlemeyin. * `if_generated_source`: Yalnızca oluşturulmuş dosya ise Python kaynak dosyalarını derleyin. :::{seealso} * Bazı durumlarda bu özelliği geçersiz kılabilen {flag}`--preder` işareti ve oluşturma sırasında tüm hedefleri etkiler. * Şu tarihte önceden derlemeyi geçişli olarak etkinleştirmek için {obj}`pyc_collection` özelliği ödeme yapar. * Önceden derlemeyi kullanma hakkında bir kılavuz için [Önceden derleme](önceden derleme) belgeleri. :::
precompile_invalidation_mode

String; varsayılan değer "auto"

Ö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ılmadığında en yararlı yöntemdir. 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

Integer; varsayılan değer 0

Ö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

Kaynak dosyanın ne zaman derlendiğini, kaynak dosyanın saklanıp saklanmayacağını belirler çıkarımlarda bulunmayacaktır. Geçerli değerler şunlardır: * `Inherit`: Değeri {flag}`--preder_source_retention` bayrağından devralır. * "keep_source": Orijinal Python kaynağını ekleyin. * "omit_source": Orijinal py kaynağını eklemeyin. * `omit_if_generated_source`: Normal bir kaynak dosyasıysa orijinal kaynağı koruyun, oluşturulmuş bir dosyaysa dosyayı çıkarın.
srcs_version

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

Kullanım dışı, kullanılmayan, hiçbir şey 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 giriş kodunuzun tamamını 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, (not: bu kuralın kurallarını değil, bu kuralın duruma göre değişir. Her dizin "py_binary" kuralları ile "PYTHONPATH" öğesine eklenir bu kurala göre değişir. Dizeler repo-runfiles-root göreli, Mutlak yollar ("/" ile başlayan yollar) ve bir yola referans veren yollar ifadelerinin kullanılmasına izin verilmez ve bu işlem hatayla sonuçlanır.
legacy_create_init

Integer; varsayılan değer -1

Runfiles ağacında dolaylı olarak boş "__init__.py" dosyası oluşturulup oluşturulmayacağı. Bunlar Python kaynak kodunu içeren her dizinde oluşturulur veya paylaşılan kitaplıkları ve depo hariç bu dizinlerin tüm üst dizini kök dizin. Varsayılan değer olan "-1" (otomatik), aksi takdirde doğru anlamına gelir "--inuyumlu_default_to_explicit_init_py" kullanılmış. Yanlış ise kullanıcı `__init__.py` dosyalarını oluşturmaktan ve bunları Python hedeflerinin "srcs"ini ayarlayın.
main

Etiket; varsayılan değer None

İsteğe bağlı; uygulamanın ana giriş noktası olan kaynak dosyanın adı. Bu dosya "srcs" öğesinde de listelenmelidir. Belirtilmemişse Bunun yerine, ".py" eklenmiş "name" kullanılır. "ad" herhangi biriyle eşleşmiyorsa "srcs", "main"te dosya adı belirtilmelidir.
precompile

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

**Bu hedef için** py kaynak dosyalarının önceden derlenip derlenmediği. Değerler: * `devral`: {flag}`--preder` işaretinden değeri belirleyin. * "enabled": Python kaynak dosyalarını derleme sırasında derler. --precompile_add_to_runfiles parametresinin, derlenmiş dosyaların alt akış ikilisine nasıl dahil edildiğini etkilediğini unutmayın. * "devre dışı": Derleme sırasında Python kaynak dosyalarını derlemeyin. * `if_generated_source`: Yalnızca oluşturulmuş dosya ise Python kaynak dosyalarını derleyin. :::{seealso} * Bazı durumlarda bu özelliği geçersiz kılabilen {flag}`--preder` işareti ve oluşturma sırasında tüm hedefleri etkiler. * Şu tarihte önceden derlemeyi geçişli olarak etkinleştirmek için {obj}`pyc_collection` özelliği ödeme yapar. * Önceden derlemeyi kullanma hakkında bir kılavuz için [Önceden derleme](önceden derleme) belgeleri. :::
precompile_invalidation_mode

String; varsayılan değer "auto"

Ö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ılmadığında en yararlı yöntemdir. 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

Integer; varsayılan değer 0

Ö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

Kaynak dosyanın ne zaman derlendiğini, kaynak dosyanın saklanıp saklanmayacağını belirler çıkarımlarda bulunmayacaktır. Geçerli değerler: * `inherit`: Değeri {flag}`--precompile_source_retention` işaretinden devralın. * "keep_source": Orijinal Python kaynağını ekleyin. * "omit_source": Orijinal py kaynağını eklemeyin. * "omit_if_generate_source": Normal bir kaynaksa orijinal kaynağı korur dosyası olarak oluşturabilirsiniz, ancak oluşturulmuş bir dosyaysa bunu atlayın.
pyc_collection

String; varsayılan değer "inherit"

Bağımlılıklardaki pyc dosyalarının manuel olarak eklenip eklenmeyeceğini belirler. NOT: Bu ayar yalnızca {flag}`--precompile_add_to_runfiles=decided_elsewhere` ile birlikte kullanışlıdır. Geçerli değerler şunlardır: * `inherit`: Değeri {flag}`--pyc_collection` parametresinden devralın. * `include_pyc`: İkili dosyadaki bağımlılıklardan pyc dosyaları ekleyin ({obj}`PyInfo.transitive_pyc_files` değerinden). * `disabled`: Bağımlılıklardan pyc dosyalarını açıkça eklemeyin. Bir hedef, pyc dosyalarını çalışma dosyalarının bir parçası olarak içeriyorsa (ör. {obj}`--precompile_add_to_runfiles=always` kullanıldığında) bu dosyaların yine de bağımlılıklardan gelebileceğ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

Kullanım dışı, kullanılmayan, hiçbir şey yapmaz.
stamp

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

Derleme bilgilerinin ikili programda kodlanıp kodlanmayacağını belirler. Olası değerler: * `stamp = 1`: `--nostamp` derlemelerinde bile derleme bilgilerini her zaman ikili dosyaya damgalayın. **Bu ayardan kaçınılmalıdır,** çünkü uzaktan önbelleğe alma ve buna bağlı tüm aşağı akış işlemleri. * `stamp = 0`: Derleme bilgilerini her zaman sabit değerlerle değiştirin. Bu sayede, derleme sonucu önbelleğe iyi bir şekilde alınır. * `stamp = -1`: Derleme bilgilerinin yerleştirilmesi, `--[no]stamp` işaretçisi tarafından kontrol edilir. Damgalanmış ikili dosyalar, bağımlılıkları değişmediği sürece yeniden derlenmez. UYARI: Damgalama, önbellek isabetlerini azaltarak derleme performansına zarar verebilir ve kaçınılmalıdır.

py_runtime

Kural kaynağını görüntüle
py_runtime(name, 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ı kurallara uyarak 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. dahili çalışma zamanının hermetik özellikte olup olmadığına bağlı olarak giriş yapılmış bir çevirmen veya sisteme erişen bir sarmalayıcı komut dosyası kullanabilirsiniz. Ö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.

bootstrap_template

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

Kullanılacak önyükleme komut dosyası şablon dosyası. %python_binary% olmalıdır. %workspace_name%, %main% ve %imports%. Bu şablon, genişletme işleminden sonra Bu nedenle, kullanıcı edinme gibi ilk önyükleme işlemlerinden çalıştırması ve bu komut dosyasını çalıştıracak bir ortam oluşturma Python uygulamasıdır. Bu özellik şu anda isteğe bağlı olsa da Python kuralları Bazel'den çıkarıldığında zorunlu 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

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. Hedef ve çalıştırma dosyaları, kapsam etkinleştirildiğinde çalıştırma dosyalarına eklenir. Aracın giriş noktası, bir Python yorumlayıcısı tarafından yüklenebilir olmalıdır (ör. ".py" veya ".pyc" dosyası). Komut satırı bağımsız değişkenlerini kabul etmelidir [`coverage.py`](https://coverage.readthedocs.io), en az "run" ve "lcov" alt komutlarını içerir.
files

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

Derleme içi çalışma zamanı için bu çalışma zamanını oluşturan dosya kümesi budur. Bu dosyalar, bunu kullanan Python ikili programlarının çalıştırma dosyalarına eklenir belirler. Platform çalışma zamanı için bu özellik ayarlanmamalıdır.
implementation_name

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

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

Etiket; varsayılan değer None

Derleme içi çalışma zamanı için yorumlayıcı olarak çağrılacak hedef budur. Google şunlardan biri olabilir: * Çevirmen ikili programı olacak 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 varsayılan çıkışlar ("target.files") ve düz dosyalar çalıştırma dosyaları (`runfiles.files`), "files" özelliğiyle birleştirilir. NOT: Hedefin çalıştırma dosyalarına henüz gerektiği gibi uygulanmayabilir/yayılmayabilir araç zincirinin/yorumlayıcının tüketicilerine göstermek için bazelbuild/rules_python/issues/1612 Platform çalışma zamanı için (ör. "interpreter_path" ayarlanmış) ayarlanmadı.
interpreter_path

String; varsayılan değer ""

Platform çalışma zamanı için bu, karar vermelisiniz. 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 bölümü, ör. "cpython-39" infixi "foo.cpython-39.pyc". bkz. PEP 3147. 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

String; varsayılan değer "PY3"

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"

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ı. :::