Reglas de Python

Informar un problema Ver fuente Nightly · 8.0 . 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Reglas

py_binary

Ver la fuente de la regla
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)

Argumentos

Atributos
name

Nombre: Obligatorio

Un nombre único para este objetivo.

deps

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de bibliotecas adicionales que se vincularán al destino. Consulta los comentarios sobre el atributo [`deps`, que suele definirse con reglas](https://bazel.build/reference/be/common-definitions#typical-attributes). Por lo general, son reglas de "py_library". Los destinos que solo proporcionan archivos de datos que se usan en el tiempo de ejecución pertenecen al atributo "data".
srcs

Es una lista de etiquetas obligatoria.

Es la lista de archivos fuente de Python que se procesan para crear el destino. Esto incluye todo el código que se revisó y puede incluir archivos fuente generados. Los archivos.py pertenecen a "srcs" y los destinos de bibliotecas pertenecen a "deps". Otros archivos binarios que pueden ser necesarios en el tiempo de ejecución pertenecen a "data".
data

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de archivos que necesita esta biblioteca durante el tiempo de ejecución. Consulta los comentarios sobre el [`atributo "data" que suele definirse con reglas"](https://bazel.build/reference/be/common-definitions#typical-attributes). No hay "py_embed_data" como "cc_embed_data" y "go_embed_data". Esto se debe a que Python tiene un concepto de recursos de tiempo de ejecución.
imports

Es una lista de cadenas. El valor predeterminado es [].

Es la lista de directorios de importación que se agregarán a PYTHONPATH. Está sujeto a la sustitución "Make variable". Estos directorios de importación se agregarán para esta regla y todas las reglas que dependen de ella (nota: no las reglas de las que depende esta regla). Cada directorio se agregará a "PYTHONPATH" mediante las reglas "py_binary" que dependen de esta regla. Las cadenas son relativas a repo-runfiles-root. No se permiten las rutas de acceso absolutas (rutas que comienzan con "/") ni las rutas de acceso que hacen referencia a una ruta de acceso arriba de la raíz de ejecución, ya que se producirá un error.
legacy_create_init

Número entero (el valor predeterminado es -1)

Indica si se deben crear implícitamente archivos "__init__.py" vacíos en el árbol de runfiles. Se crean en todos los directorios que contienen código fuente de Python o bibliotecas compartidas, y en todos los directorios superiores de esos directorios, excepto el directorio raíz del repositorio. El valor predeterminado, "-1" (automático), significa verdadero, a menos que se use `--incompatible_default_to_explicit_init_py". Si es falso, el usuario es responsable de crear archivos "__init__.py" (posiblemente vacíos) y agregarlos a "srcs" de los destinos de Python según sea necesario.
main

Etiqueta (Label); el valor predeterminado es None

Opcional: Es el nombre del archivo fuente que es el punto de entrada principal de la aplicación. Este archivo también debe aparecer en "srcs". Si no se especifica, se usa "name", con ".py" agregado. Si "name" no coincide con ningún nombre de archivo en "srcs", se debe especificar "main".
precompile

Cadena; el valor predeterminado es "inherit"

Indica si los archivos de origen de py **para este destino** deben precompilarse. Valores: * "inherit": Permite que el objeto binario downstream decida si se usan archivos precompilados. * "enabled": Compila los archivos fuente de Python en el tiempo de compilación. * "disabled": No compila los archivos fuente de Python en el tiempo de compilación. :::{seealso} * La marca {flag}`--precompile`, que puede anular este atributo en algunos casos y afectará a todos los destinos durante la compilación. * El atributo {obj}`pyc_collection` para habilitar de forma transitiva la compilación previa por objetivo * La documentación [Precompilación](precompiling) para obtener una guía sobre el uso de la precompilación :::
precompile_invalidation_mode

Cadena; el valor predeterminado es "auto"

Cómo se deben verificar los archivos precompilados para que estén actualizados con sus archivos de origen asociados Los valores posibles son los siguientes: * "auto": El valor efectivo se determinará automáticamente mediante otros parámetros de configuración de la compilación. * "checked_hash": Usa el archivo pyc si el hash del archivo de origen coincide con el hash registrado en el archivo pyc. Esto es más útil cuando se trabaja con código que puedes modificar. * "unchecked_hash": Usa siempre el archivo pyc. No compares el hash de pyc con el archivo de origen. Esto es más útil cuando no se modificará el código. Para obtener más información sobre los modos de invalidación de pyc, consulta https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.
precompile_optimize_level

Número entero (el valor predeterminado es 0)

Es el nivel de optimización para los archivos precompilados. Para obtener más información sobre los niveles de optimización, consulta la documentación del argumento "optimize" de la función "compile()`" en https://docs.python.org/3/library/functions.html#compile. NOTA: El valor "-1" significa "intérprete actual", que será el intérprete que se use _en el tiempo de compilación cuando se generen los pycs_, no el intérprete que se use en el tiempo de ejecución cuando se ejecute el código.
precompile_source_retention

Cadena; el valor predeterminado es "inherit"

Determina, cuando se compila un archivo de origen, si este se mantiene en el resultado final o no. Los valores válidos son los siguientes: * "inherit": Hereda el valor de la marca {flag}`--precompile_source_retention`. * "keep_source": Incluye la fuente original de Python. * "omit_source": No incluye la fuente de py original.
pyc_collection

Cadena; el valor predeterminado es "inherit"

Determina si se deben incluir manualmente los archivos pyc de las dependencias. Los valores válidos son los siguientes: * "inherit": Hereda el valor de {flag}`--precompile`. * "include_pyc": Agrega archivos pyc generados de forma implícita desde dependencias, es decir, archivos pyc para destinos que especifican {attr}`precompile="inherit"`. * "disabled": No agrega archivos pyc generados de forma implícita. Ten en cuenta que los archivos pyc pueden provenir de dependencias que habilitan la compilación previa en el nivel de destino.
python_version

Cadena; el valor predeterminado es "PY3"

No se usa y no hace nada.
srcs_version

Cadena; el valor predeterminado es "PY2AND3"

No se usa y no hace nada.
stamp

Número entero (el valor predeterminado es -1)

Indica si se debe codificar la información de compilación en el objeto binario. Valores posibles: * "stamp = 1": Siempre marca la información de compilación en el binario, incluso en las compilaciones de `--nostamp`. **Se debe evitar este parámetro de configuración**, ya que puede finalizar la caché remota para el binario y cualquier acción descendente que dependa de ella. * "stamp = 0": Siempre reemplaza la información de compilación por valores constantes. Esto proporciona una buena almacenamiento en caché de resultados de compilación. * "stamp = -1": La incorporación de información de compilación está controlada por la marca `--[no]stamp`. Los objetos binarios estampados no se vuelven a compilar, a menos que cambien sus dependencias. ADVERTENCIA: El sellado puede perjudicar el rendimiento de la compilación, ya que reduce los hits de caché, y se debe evitar si es posible.

py_library

Ver la fuente de la regla
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)
Es una biblioteca de código de Python de la que se puede depender. Resultados predeterminados: * Las fuentes de Python de entrada * Los artefactos precompilados de las fuentes NOTA: La compilación previa afecta a cuáles de los resultados predeterminados se incluyen en los archivos de ejecución resultantes. Consulta los atributos y las marcas relacionados con la compilación previa para obtener más información. :::{versionchanged} 0.37.0 Los archivos de origen ya no se agregan directamente a los archivos de ejecución. :::

Argumentos

Atributos
name

Nombre: Obligatorio

Un nombre único para este objetivo.

deps

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de bibliotecas adicionales que se vincularán al destino. Consulta los comentarios sobre el atributo [`deps`, que suele definirse con reglas](https://bazel.build/reference/be/common-definitions#typical-attributes). Por lo general, son reglas de "py_library". Los destinos que solo proporcionan archivos de datos que se usan en el tiempo de ejecución pertenecen al atributo "data".
srcs

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de archivos fuente de Python que se procesan para crear el destino. Esto incluye todo el código que se revisó y puede incluir archivos fuente generados. Los archivos.py pertenecen a "srcs" y los destinos de bibliotecas pertenecen a "deps". Otros archivos binarios que pueden ser necesarios en el tiempo de ejecución pertenecen a "data".
data

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de archivos que necesita esta biblioteca durante el tiempo de ejecución. Consulta los comentarios sobre el [`atributo "data" que suele definirse con reglas"](https://bazel.build/reference/be/common-definitions#typical-attributes). No hay "py_embed_data" como "cc_embed_data" y "go_embed_data". Esto se debe a que Python tiene un concepto de recursos de tiempo de ejecución.
imports

Es una lista de cadenas. El valor predeterminado es [].

Es la lista de directorios de importación que se agregarán a PYTHONPATH. Está sujeto a la sustitución "Make variable". Estos directorios de importación se agregarán para esta regla y todas las reglas que dependen de ella (nota: no las reglas de las que depende esta regla). Cada directorio se agregará a "PYTHONPATH" mediante las reglas "py_binary" que dependen de esta regla. Las cadenas son relativas a repo-runfiles-root. No se permiten las rutas de acceso absolutas (rutas que comienzan con "/") ni las rutas de acceso que hacen referencia a una ruta de acceso arriba de la raíz de ejecución, ya que se producirá un error.
precompile

Cadena; el valor predeterminado es "inherit"

Indica si los archivos de origen de py **para este destino** deben precompilarse. Valores: * "inherit": Permite que el objeto binario downstream decida si se usan archivos precompilados. * "enabled": Compila los archivos fuente de Python en el tiempo de compilación. * "disabled": No compila los archivos fuente de Python en el tiempo de compilación. :::{seealso} * La marca {flag}`--precompile`, que puede anular este atributo en algunos casos y afectará a todos los destinos durante la compilación. * El atributo {obj}`pyc_collection` para habilitar de forma transitiva la compilación previa por objetivo * La documentación [Precompilación](precompiling) para obtener una guía sobre el uso de la precompilación :::
precompile_invalidation_mode

Cadena; el valor predeterminado es "auto"

Cómo se deben verificar los archivos precompilados para que estén actualizados con sus archivos de origen asociados Los valores posibles son los siguientes: * "auto": El valor efectivo se determinará automáticamente mediante otros parámetros de configuración de la compilación. * "checked_hash": Usa el archivo pyc si el hash del archivo de origen coincide con el hash registrado en el archivo pyc. Esto es más útil cuando se trabaja con código que puedes modificar. * "unchecked_hash": Usa siempre el archivo pyc. No compares el hash de pyc con el archivo de origen. Esto es más útil cuando no se modificará el código. Para obtener más información sobre los modos de invalidación de pyc, consulta https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.
precompile_optimize_level

Número entero (el valor predeterminado es 0)

Es el nivel de optimización para los archivos precompilados. Para obtener más información sobre los niveles de optimización, consulta la documentación del argumento "optimize" de la función "compile()`" en https://docs.python.org/3/library/functions.html#compile. NOTA: El valor "-1" significa "intérprete actual", que será el intérprete que se use _en el tiempo de compilación cuando se generen los pycs_, no el intérprete que se use en el tiempo de ejecución cuando se ejecute el código.
precompile_source_retention

Cadena; el valor predeterminado es "inherit"

Determina, cuando se compila un archivo de origen, si este se mantiene en el resultado final o no. Los valores válidos son los siguientes: * "inherit": Hereda el valor de la marca {flag}`--precompile_source_retention`. * "keep_source": Incluye la fuente original de Python. * "omit_source": No incluye la fuente de py original.
srcs_version

Cadena; el valor predeterminado es "PY2AND3"

No se usa y no hace nada.

py_test

Ver la fuente de la regla
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)

Argumentos

Atributos
name

Nombre: Obligatorio

Un nombre único para este objetivo.

deps

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de bibliotecas adicionales que se vincularán al destino. Consulta los comentarios sobre el atributo [`deps`, que suele definirse con reglas](https://bazel.build/reference/be/common-definitions#typical-attributes). Por lo general, son reglas de "py_library". Los destinos que solo proporcionan archivos de datos que se usan en el tiempo de ejecución pertenecen al atributo "data".
srcs

Es una lista de etiquetas obligatoria.

Es la lista de archivos fuente de Python que se procesan para crear el destino. Esto incluye todo el código que se revisó y puede incluir archivos fuente generados. Los archivos.py pertenecen a "srcs" y los destinos de bibliotecas pertenecen a "deps". Otros archivos binarios que pueden ser necesarios en el tiempo de ejecución pertenecen a "data".
data

Es una lista de etiquetas. El valor predeterminado es [].

Es la lista de archivos que necesita esta biblioteca durante el tiempo de ejecución. Consulta los comentarios sobre el [`atributo "data" que suele definirse con reglas"](https://bazel.build/reference/be/common-definitions#typical-attributes). No hay "py_embed_data" como "cc_embed_data" y "go_embed_data". Esto se debe a que Python tiene un concepto de recursos de tiempo de ejecución.
imports

Es una lista de cadenas. El valor predeterminado es [].

Es la lista de directorios de importación que se agregarán a PYTHONPATH. Está sujeto a la sustitución "Make variable". Estos directorios de importación se agregarán para esta regla y todas las reglas que dependen de ella (nota: no las reglas de las que depende esta regla). Cada directorio se agregará a "PYTHONPATH" mediante las reglas "py_binary" que dependen de esta regla. Las cadenas son relativas a repo-runfiles-root. No se permiten las rutas de acceso absolutas (rutas que comienzan con "/") ni las rutas de acceso que hacen referencia a una ruta de acceso arriba de la raíz de ejecución, ya que se producirá un error.
legacy_create_init

Número entero (el valor predeterminado es -1)

Indica si se deben crear implícitamente archivos "__init__.py" vacíos en el árbol de runfiles. Se crean en todos los directorios que contienen código fuente de Python o bibliotecas compartidas, y en todos los directorios superiores de esos directorios, excepto el directorio raíz del repositorio. El valor predeterminado, "-1" (automático), significa verdadero, a menos que se use `--incompatible_default_to_explicit_init_py". Si es falso, el usuario es responsable de crear archivos "__init__.py" (posiblemente vacíos) y agregarlos a "srcs" de los destinos de Python según sea necesario.
main

Etiqueta (Label); el valor predeterminado es None

Opcional: Es el nombre del archivo fuente que es el punto de entrada principal de la aplicación. Este archivo también debe aparecer en "srcs". Si no se especifica, se usa "name", con ".py" agregado. Si "name" no coincide con ningún nombre de archivo en "srcs", se debe especificar "main".
precompile

Cadena; el valor predeterminado es "inherit"

Indica si los archivos de origen de py **para este destino** deben precompilarse. Valores: * "inherit": Permite que el objeto binario downstream decida si se usan archivos precompilados. * "enabled": Compila los archivos fuente de Python en el tiempo de compilación. * "disabled": No compila los archivos fuente de Python en el tiempo de compilación. :::{seealso} * La marca {flag}`--precompile`, que puede anular este atributo en algunos casos y afectará a todos los destinos durante la compilación. * El atributo {obj}`pyc_collection` para habilitar de forma transitiva la compilación previa por objetivo * La documentación [Precompilación](precompiling) para obtener una guía sobre el uso de la precompilación :::
precompile_invalidation_mode

Cadena; el valor predeterminado es "auto"

Cómo se deben verificar los archivos precompilados para que estén actualizados con sus archivos de origen asociados Los valores posibles son los siguientes: * "auto": El valor efectivo se determinará automáticamente mediante otros parámetros de configuración de la compilación. * "checked_hash": Usa el archivo pyc si el hash del archivo de origen coincide con el hash registrado en el archivo pyc. Esto es más útil cuando se trabaja con código que puedes modificar. * "unchecked_hash": Usa siempre el archivo pyc. No compares el hash de pyc con el archivo de origen. Esto es más útil cuando no se modificará el código. Para obtener más información sobre los modos de invalidación de pyc, consulta https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.
precompile_optimize_level

Número entero (el valor predeterminado es 0)

Es el nivel de optimización para los archivos precompilados. Para obtener más información sobre los niveles de optimización, consulta la documentación del argumento "optimize" de la función "compile()`" en https://docs.python.org/3/library/functions.html#compile. NOTA: El valor "-1" significa "intérprete actual", que será el intérprete que se use _en el tiempo de compilación cuando se generen los pycs_, no el intérprete que se use en el tiempo de ejecución cuando se ejecute el código.
precompile_source_retention

Cadena; el valor predeterminado es "inherit"

Determina, cuando se compila un archivo de origen, si este se mantiene en el resultado final o no. Los valores válidos son los siguientes: * "inherit": Hereda el valor de la marca {flag}`--precompile_source_retention`. * "keep_source": Incluye la fuente original de Python. * "omit_source": No incluye la fuente de py original.
pyc_collection

Cadena; el valor predeterminado es "inherit"

Determina si se deben incluir manualmente los archivos pyc de las dependencias. Los valores válidos son los siguientes: * "inherit": Hereda el valor de {flag}`--precompile`. * "include_pyc": Agrega archivos pyc generados de forma implícita desde dependencias, es decir, archivos pyc para destinos que especifican {attr}`precompile="inherit"`. * "disabled": No agrega archivos pyc generados de forma implícita. Ten en cuenta que los archivos pyc pueden provenir de dependencias que habilitan la compilación previa en el nivel de destino.
python_version

Cadena; el valor predeterminado es "PY3"

No se usa y no hace nada.
srcs_version

Cadena; el valor predeterminado es "PY2AND3"

No se usa y no hace nada.
stamp

Número entero (el valor predeterminado es 0)

Indica si se debe codificar la información de compilación en el objeto binario. Valores posibles: * "stamp = 1": Siempre marca la información de compilación en el binario, incluso en las compilaciones de `--nostamp`. **Se debe evitar este parámetro de configuración**, ya que puede finalizar la caché remota para el binario y cualquier acción descendente que dependa de ella. * "stamp = 0": Siempre reemplaza la información de compilación por valores constantes. Esto proporciona una buena almacenamiento en caché de resultados de compilación. * "stamp = -1": La incorporación de información de compilación está controlada por la marca `--[no]stamp`. Los objetos binarios estampados no se vuelven a compilar, a menos que cambien sus dependencias. ADVERTENCIA: El sellado puede perjudicar el rendimiento de la compilación, ya que reduce los hits de caché, y se debe evitar si es posible.

py_runtime

Ver la fuente de la regla
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)
Representa un entorno de ejecución de Python que se usa para ejecutar código de Python. Un destino "py_runtime" puede representar un *entorno de ejecución de la plataforma* o un *entorno de ejecución integrado*. Un entorno de ejecución de plataforma accede a un intérprete instalado por el sistema en una ruta conocida, mientras que un entorno de ejecución integrado apunta a un destino ejecutable que actúa como intérprete. En ambos casos, un "intérprete" se refiere a cualquier secuencia de comandos binaria o wrapper ejecutable que sea capaz de ejecutar una secuencia de comandos de Python pasada en la línea de comandos, siguiendo las mismas convenciones que el intérprete estándar de CPython. Por su naturaleza, un entorno de ejecución de plataforma no es hermético. Impone un requisito a la plataforma de destino para que tenga un intérprete ubicado en una ruta específica. Un tiempo de ejecución integrado puede ser hermético o no, según si apunta a un intérprete registrado o a una secuencia de comandos de wrapper que accede al intérprete del sistema. Ejemplo ``` 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", ) ```

Argumentos

Atributos
name

Nombre: Obligatorio

Un nombre único para este objetivo.

abi_flags

Cadena; el valor predeterminado es ""

Las marcas de ABI del entorno de ejecución, es decir, "sys.abiflags". Si no se establece, se establecerá en función de las marcas.
bootstrap_template

Etiqueta (Label); el valor predeterminado es "@rules_python//python/private:bootstrap_template"

Es el archivo de plantilla de secuencia de comandos de arranque que se usará. Debe tener %python_binary%, %workspace_name%, %main% y %imports%. Esta plantilla, después de la expansión, se convierte en el archivo ejecutable que se usa para iniciar el proceso, por lo que es responsable de las acciones de arranque iniciales, como encontrar el intérprete de Python, los archivos de ejecución y la construcción de un entorno para ejecutar la aplicación de Python prevista. Si bien este atributo es opcional en la actualidad, se volverá obligatorio cuando las reglas de Python se quiten de Bazel. Los nombres de las variables exactas expandidas son una API inestable y están sujetos a cambios. La API será más estable cuando se quiten las reglas de Python de Bazel. Consulta @bazel_tools//tools/python:python_bootstrap_template.txt para obtener más variables.
coverage_tool

Etiqueta (Label); el valor predeterminado es None

Este es un destino que se usa para recopilar información de cobertura de código de los destinos {rule}`py_binary` y {rule}`py_test`. Si se establece, el destino debe producir un solo archivo o ser un destino ejecutable. La ruta de acceso al archivo único, o el ejecutable si el destino es ejecutable, determina el punto de entrada de la herramienta de cobertura de Python. El objetivo y sus archivos de ejecución se agregarán a los archivos de ejecución cuando se habilite la cobertura. Un intérprete de Python debe poder cargar el punto de entrada de la herramienta (p.ej., un archivo.py o.pyc). Debe aceptar los argumentos de línea de comandos de [`coverage.py`](https://coverage.readthedocs.io), al menos, los subcomandos "run" y "lcov".
files

Es una lista de etiquetas. El valor predeterminado es [].

En el caso de un entorno de ejecución integrado, este es el conjunto de archivos que lo componen. Estos archivos se agregarán a los archivos de ejecución de los objetos binarios de Python que usen este tiempo de ejecución. Para un entorno de ejecución de plataforma, no se debe establecer este atributo.
implementation_name

Cadena; el valor predeterminado es "cpython"

El nombre de la implementación de Python ("sys.implementation.name")
interpreter

Etiqueta (Label); el valor predeterminado es None

Para un entorno de ejecución integrado en la compilación, este es el objetivo que se debe invocar como intérprete. Puede ser una de las siguientes opciones: * Un solo archivo, que será el intérprete binario. Se supone que esos intérpretes son ejecutables de un solo archivo independientes o que cualquier archivo de compatibilidad se especifica en "files". * Un destino ejecutable. El ejecutable del destino será el objeto binario del intérprete. Cualquier otro resultado predeterminado ("target.files") y runfiles de archivos simples ("runfiles.files") se incluirán automáticamente como si se especificaran en el atributo "files". NOTA: Es posible que los archivos de ejecución del destino aún no se respeten o propaguen correctamente a los consumidores de la cadena de herramientas o el intérprete.Consulta bazelbuild/rules_python/issues/1612. Para un entorno de ejecución de plataforma (es decir, si se establece "interpreter_path"), este atributo no debe establecerse.
interpreter_path

Cadena; el valor predeterminado es ""

Para un entorno de ejecución de plataforma, esta es la ruta de acceso absoluta de un intérprete de Python en la plataforma de destino. Para un entorno de ejecución integrado, no se debe configurar este atributo.
interpreter_version_info

Diccionario: Cadena -> Cadena; el valor predeterminado es {}

Es la información de versión sobre el intérprete que proporciona este entorno de ejecución. Si no se especifica, usa {obj}`--python_version`. Las claves admitidas coinciden con los nombres de "sys.version_info". Si bien los valores de entrada son cadenas, la mayoría se convierten en números enteros. Las claves admitidas son las siguientes: * major: int, el número de versión principal * minor: int, el número de versión secundaria * micro: int opcional, el número de versión micro * releaselevel: str opcional, el nivel de lanzamiento * serial: int opcional, el número de serie de la versión :::{versionchanged} 0.36.0 {obj}`--python_version` determina el valor predeterminado. :::
pyc_tag

Cadena; el valor predeterminado es ""

Es una cadena opcional, la parte de la etiqueta de un nombre de archivo pyc, p.ej., el infijo "cpython-39" de "foo.cpython-39.pyc". Consulta PEP 3147. Si no se especifica, se calculará a partir de "implementation_name" y "interpreter_version_info". Si no hay una etiqueta pyc disponible, solo funcionará correctamente la generación de pyc sin código fuente.
python_version

Cadena; el valor predeterminado es "PY3"

Indica si este entorno de ejecución es para la versión principal 2 o 3 de Python. Los valores válidos son"PY2" y"PY3". El valor predeterminado se controla con la marca `--incompatible_py3_is_default`. Sin embargo, en el futuro, este atributo será obligatorio y no tendrá un valor predeterminado.
stage2_bootstrap_template

Etiqueta (Label); el valor predeterminado es "@rules_python//python/private:stage2_bootstrap_template"

Es la plantilla que se debe usar cuando se habilita el inicio por dos etapas. :::{seealso} {obj}`PyRuntimeInfo.stage2_bootstrap_template` y {obj}`--bootstrap_impl` :::
stub_shebang

Cadena; el valor predeterminado es "#!/usr/bin/env python3"

Expresión "shebang" que se agrega al principio de la secuencia de comandos de stub de Python de inicio que se usa cuando se ejecutan destinos {rule}`py_binary`. Consulta https://github.com/bazelbuild/bazel/issues/8685 para obtener motivación. No se aplica a Windows.
zip_main_template

Etiqueta (Label); el valor predeterminado es "@rules_python//python/private:zip_main_template"

Es la plantilla que se usará para el archivo "__main__.py" de nivel superior de un archivo ZIP. Este se convierte en el punto de entrada que se ejecuta cuando se ejecuta "python foo.zip". :::{seealso} El campo {obj}`PyRuntimeInfo.zip_main_template`. :::