sys
— Parámetros y funciones específicos del sistema¶
Este módulo provee acceso a algunas variables usadas o mantenidas por el intérprete y a funciones que interactúan fuertemente con el intérprete. Siempre está disponible.
- sys.abiflags¶
En los sistemas POSIX donde Python se construyó con el script estándar
configure
, este contiene los indicadores ABI según lo especificado por PEP 3149.Nuevo en la versión 3.2.
Distinto en la versión 3.8: Los flags por defecto se convirtieron en una cadena de caracteres vacía (el flag
m
para pymalloc ha sido eliminado).
- sys.addaudithook(hook)¶
Agrega el hook invocable a la lista de enlaces de inspección activos para el (sub)intérprete actual.
Cuando se genera un evento de auditoría a través de la función
sys.audit()
, cada hook será llamado en el orden en que se agregó con el nombre del evento y la tupla de argumentos. Los hooks nativos agregados porPySys_AddAuditHook()
se llaman primero, seguidos de los hooks agregados en el (sub)intérprete actual. Los hooks pueden registrar un evento, lanzar una excepción para abortar la operación, o terminar el proceso completamente.Note that audit hooks are primarily for collecting information about internal or otherwise unobservable actions, whether by Python or libraries written in Python. They are not suitable for implementing a «sandbox». In particular, malicious code can trivially disable or bypass hooks added using this function. At a minimum, any security-sensitive hooks must be added using the C API
PySys_AddAuditHook()
before initialising the runtime, and any modules allowing arbitrary memory modification (such asctypes
) should be completely removed or closely monitored.Llamar
sys.addaudithook()
lanzará por si mismo un evento de auditoria llamadosys.addaudithook
sin argumentos. Si uno de los hooks existentes lanza un excepción derivada deRuntimeError
, el nuevo hook no será agregado y la excepción será suprimida. Como resultado, los que llaman no podrán asumir que el hook a sido agregado a menos que ellos controlen todos los hooks existentes.Consulte la tabla de eventos de auditoría para todos los eventos lanzados por CPython, y PEP 578 para discusión del diseño original.
Nuevo en la versión 3.8.
Distinto en la versión 3.8.1: Las excepciones derivadas de
Exception
pero noRuntimeError
ya no se suprimen.Detalles de implementación de CPython: Cuando el rastreo está habilitado (ver
settrace()
), los ganchos de Python solo se rastrean si el invocable tiene un miembro__cantrace__
que se establece en un valor verdadero. De lo contrario, las funciones de seguimiento omitirán el enlace.
- sys.argv¶
La lista de argumentos de la línea de comandos pasados a un script de Python.
argv[0]
es el nombre del script (depende del sistema operativo si se trata de una ruta completa o no). Si el comando se ejecutó usando la opción-c
de la línea de comandos del intérprete,argv[0]
se establece en la cadena de caracteres'-c'
. Si no se pasó ningún nombre de secuencia de comandos al intérprete de Python,argv[0]
es la cadena de caracteres vacía.Para recorrer la entrada estándar, o la lista de archivos dada en la línea de comando, vea el módulo
fileinput
.También ver
sys.orig_argv
.Nota
En Unix, los argumentos de la línea de comandos se pasan por bytes desde el sistema operativo. Python los decodifica con la codificación del sistema de archivos y el controlador de errores «surrogateescape». Cuando necesite bytes originales, puede obtenerlos mediante
[os.fsencode (arg) for arg in sys.argv]
.
- sys.audit(event, *args)¶
Activar un evento de auditoría y activar cualquier hook de auditoría activo. event es una cadena que identifica el evento, y args puede contener argumentos opcionales con más información sobre el evento. El número y los tipos de argumentos para un evento determinado se consideran una API pública y estable y no deberían modificarse entre versiones.
Por ejemplo, un evento de auditoría se llama
os.chdir
. Este evento tiene un argumento llamado path que contendrá el nuevo directorio de trabajo solicitado.sys.audit()
llamará a los ganchos de auditoría existentes, pasando el nombre del evento y los argumentos, y volverá a lanzar la primera excepción de cualquier hook. En general, si se lanza una excepción, no debería ser manejada y el proceso debería terminar lo más rápidamente posible. Esto permite que las implementaciones de los hook decidan cómo responder a determinados eventos: pueden limitarse a registrar el evento o abortar la operación lanzando una excepción.Los ganchos se agregan usando las funciones
sys.addaudithook()
oPySys_AddAuditHook()
.El equivalente nativo de esta función es
PySys_Audit()
. Se prefiere usar la función nativa cuando sea posible.Consulte la tabla de eventos de auditoría para todos los eventos lanzados por CPython.
Nuevo en la versión 3.8.
- sys.base_exec_prefix¶
Se establece durante el inicio de Python, antes de que se ejecute
site.py
, en el mismo valor queexec_prefix
. Si no se ejecuta en un entorno virtual, los valores permanecerán iguales; Sisite.py
encuentra que se está utilizando un entorno virtual, los valores deprefix
yexec_prefix
se cambiarán para apuntar al entorno virtual, mientras quebase_prefix
ybase_exec_prefix
seguirá apuntando a la instalación base de Python (aquella desde la que se creó el entorno virtual).Nuevo en la versión 3.3.
- sys.base_prefix¶
Se establece durante el inicio de Python, antes de que se ejecute
site.py
, al mismo valor queprefix
. Si no se ejecuta en un entorno virtual, los valores permanecerán iguales; sisite.py
encuentra que se está utilizando un entorno virtual, los valores deprefix
yexec_prefix
se cambiarán para apuntar al entorno virtual, mientras quebase_prefix
ybase_exec_prefix
seguirá apuntando a la instalación base de Python (aquella desde la que se creó el entorno virtual).Nuevo en la versión 3.3.
- sys.byteorder¶
Un indicador del orden de bytes nativo. Esto tendrá el valor
'big'
en las plataformas big-endian (el byte más significativo primero) y'little'
en las plataformas little-endian (el byte menos significativo primero).
- sys.builtin_module_names¶
Una tupla de cadenas de caracteres que contiene los nombres de todos los módulos que se compilan en este intérprete de Python. (Esta información no está disponible de ninguna otra manera —
modules.keys()
solo enumera los módulos importados.)See also the
sys.stdlib_module_names
list.
- sys.call_tracing(func, args)¶
Call
func(*args)
, while tracing is enabled. The tracing state is saved, and restored afterwards. This is intended to be called from a debugger from a checkpoint, to recursively debug or profile some other code.Tracing is suspended while calling a tracing function set by
settrace()
orsetprofile()
to avoid infinite recursion.call_tracing()
enables explicit recursion of the tracing function.
- sys.copyright¶
Una cadena de caracteres que contiene los derechos de autor pertenecientes al intérprete de Python.
- sys._clear_type_cache()¶
Borre la caché de tipo interno. La caché de tipos se utiliza para acelerar las búsquedas de métodos y atributos. Utilice la función solo para eliminar referencias innecesarias durante la depuración de fugas de referencia.
Esta función debe usarse solo para fines internos y especializados.
- sys._current_frames()¶
Retorna un diccionario que asigna el identificador de cada subproceso al marco de pila superior actualmente activo en ese subproceso en el momento en que se llama a la función. Tenga en cuenta que las funciones en el módulo
traceback
pueden construir la pila de llamadas dado tal marco.Esto es más útil para depurar deadlock: esta función no requiere la cooperación de los subprocesos con deadlock, y las pilas de llamadas de dichos subprocesos se congelan mientras permanezcan en deadlock. El marco retornado para un subproceso no en deadlock puede no tener relación con la actividad actual de ese subproceso en el momento en que el código de llamada examina el marco.
Esta función debe usarse solo para fines internos y especializados.
Lanza un auditing event
sys._current_frames
sin argumentos.
- sys._current_exceptions()¶
Retorna un diccionario que mapea el identificador de cada hilo a la excepción mas alta actualmente activa en ese hilo en el tiempo que la función fue llamada. Si un hilo no esta manejando una excepción en el momento, no se incluye en el resultado del diccionario.
Esto es más útil para la elaboración de perfiles estadísticos.
Esta función debe usarse solo para fines internos y especializados.
Lanza un auditing event
sys._current_exceptions
sin argumentos.
- sys.breakpointhook()¶
Esta función de gancho es llamada por built-in
breakpoint()
. De forma predeterminada, lo coloca en el depuradorpdb
, pero se puede configurar en cualquier otra función para que pueda elegir qué depurador se utiliza.La firma de esta función depende de lo que llame. Por ejemplo, el enlace predeterminado (por ejemplo,
pdb.set_trace()
) no espera argumentos, pero puede vincularlo a una función que espera argumentos adicionales (posicional o palabra clave). La función incorporadabreakpoint()
pasa sus*args
y**kws
directamente. Lo que sea que retornebreakpointhooks()
se retorna desdebreakpoint()
.La implementación predeterminada consulta primero la variable de entorno
PYTHONBREAKPOINT
. Si se establece en"0"
, esta función vuelve inmediatamente; es decir, no es una operación. Si la variable de entorno no se establece, o se establece en la cadena vacía, se llama apdb.set_trace()
. De lo contrario, esta variable debería nombrar una función para ejecutar, utilizando la nomenclatura de importación con puntos de Python, por ejemplopackage.subpackage.module.function
. En este caso, se importaríapackage.subpackage.module
y el módulo resultante debe tener un invocable llamadofunction()
. Esto se ejecuta, pasando*args
y**kws
, y lo que sea quefunction()
retorna,sys.breakpointhook()
retorna a la funciónbreakpoint()
.Tenga en cuenta que si algo sale mal al importar el invocable nombrado por
PYTHONBREAKPOINT
, se informa unRuntimeWarning
y se ignora el punto de interrupción (breakpoint).También tenga en cuenta que si
sys.breakpointhook()
se anula mediante programación,PYTHONBREAKPOINT
no se consulta.Nuevo en la versión 3.7.
- sys._debugmallocstats()¶
Imprime información de bajo nivel para stderr sobre el estado del asignador de memoria de CPython.
If Python is built in debug mode (
configure --with-pydebug option
), it also performs some expensive internal consistency checks.Nuevo en la versión 3.3.
Detalles de implementación de CPython: Esta función es específica de CPython. El formato exacto de salida no se define aquí y puede cambiar.
- sys.dllhandle¶
Número entero que especifica el identificador de la DLL de Python.
Disponibilidad: Windows.
- sys.displayhook(value)¶
Si value no es
None
, esta función imprimerepr(value)
ensys.stdout
y guarda value enbuiltins._
. Sirepr(value)
no se puede codificar ensys.stdout.encoding
con el controlador de erroressys.stdout.errors
(que probablemente sea'strict'
), codifíquelo parasys.stdout.encoding
con el controlador de errores'backslashreplace'
.Se llama a
sys.displayhook
como resultado de evaluar un expression ingresado en una sesión interactiva de Python. La visualización de estos valores se puede personalizar asignando otra función de un argumento asys.displayhook
.Pseudo-código:
def displayhook(value): if value is None: return # Set '_' to None to avoid recursion builtins._ = None text = repr(value) try: sys.stdout.write(text) except UnicodeEncodeError: bytes = text.encode(sys.stdout.encoding, 'backslashreplace') if hasattr(sys.stdout, 'buffer'): sys.stdout.buffer.write(bytes) else: text = bytes.decode(sys.stdout.encoding, 'strict') sys.stdout.write(text) sys.stdout.write("\n") builtins._ = value
Distinto en la versión 3.2: Usa el manejador de error
'backslashreplace'
enUnicodeEncodeError
.
- sys.dont_write_bytecode¶
Si esto es cierto, Python no intentará escribir archivos
.pyc
en la importación de módulos fuente. Este valor se establece inicialmente enTrue
oFalse
según la opción-B
de la línea de comando y la variable de entornoPYTHONDONTWRITEBYTECODE
, pero puede configurarlo usted mismo para controlar el código de bytes generación de archivos.
- sys._emscripten_info¶
A named tuple holding information about the environment on the wasm32-emscripten platform. The named tuple is provisional and may change in the future.
- _emscripten_info.emscripten_version¶
Versión de Emscripten como tupla de enteros (mayor, menor, micro), por ejemplo
(3, 1, 8)
.
- _emscripten_info.runtime¶
Cadena de tiempo de ejecución, por ejemplo, agente de usuario del navegador,
'Node.js v14.18.2'
, o'UNKNOWN'
.
- _emscripten_info.pthreads¶
True
si Python está compilado con soporte para pthreads de Emscripten.
True
si Python está compilado con soporte de memoria compartida.
Availability: Emscripten.
Nuevo en la versión 3.11.
- sys.pycache_prefix¶
If this is set (not
None
), Python will write bytecode-cache.pyc
files to (and read them from) a parallel directory tree rooted at this directory, rather than from__pycache__
directories in the source code tree. Any__pycache__
directories in the source code tree will be ignored and new.pyc
files written within the pycache prefix. Thus if you usecompileall
as a pre-build step, you must ensure you run it with the same pycache prefix (if any) that you will use at runtime.Una ruta relativa se interpreta en relación con el directorio de directorio actual.
Este valor se establece inicialmente en función del valor de la opción de línea de comandos
-X
pycache_prefix=PATH
o la variable de entornoPYTHONPYCACHEPREFIX
(la línea de comandos tiene prioridad). Si no se establece ninguno, esNone
.Nuevo en la versión 3.8.
- sys.excepthook(type, value, traceback)¶
Esta función imprime un rastreo y una excepción dados a
sys.stderr
.When an exception other than
SystemExit
is raised and uncaught, the interpreter callssys.excepthook
with three arguments, the exception class, exception instance, and a traceback object. In an interactive session this happens just before control is returned to the prompt; in a Python program this happens just before the program exits. The handling of such top-level exceptions can be customized by assigning another three-argument function tosys.excepthook
.Lanza un auditing event
sys.excepthook
con argumentoshook
,type
,value
,traceback
.Ver también
La función
sys.unraisablehook()
maneja las excepciones que no se pueden evaluar y la funciónthreading.excepthook()
maneja la excepción lanzada porthreading.Thread.run()
.
- sys.__breakpointhook__¶
- sys.__displayhook__¶
- sys.__excepthook__¶
- sys.__unraisablehook__¶
Estos objetos contienen los valores originales de
breakpointhook
,displayhook
,excepthook
yunraisablehook
al inicio del programa. Se guardan para quebreakpointhook
,displayhook
yexcepthook
,unraisablehook
se puedan restaurar en caso de que sean reemplazados por objetos rotos o alternativos.Nuevo en la versión 3.7: __breakpointhook__
Nuevo en la versión 3.8: __unraisablehook__
- sys.exception()¶
Esta función, cuando se llama mientras se ejecuta un manejador de excepciones (como una cláusula
except
oexcept*
), retorna la instancia de la excepción que fue capturada por este manejador. Cuando los manejadores de excepciones están anidados unos dentro de otros, sólo la excepción manejada por el manejador más interno es accesible.Si no se está ejecutando ningún manejador de excepciones, esta función retorna
None
.Nuevo en la versión 3.11.
- sys.exc_info()¶
Esta función retorna la representación de estilo antiguo de la excepción manejada. Si se maneja una excepción
e
(por lo queexception()
retornaríae
),exc_info()
retorna la tupla(type(e), e, e.__traceback__)
. Es decir, una tupla que contiene el tipo de la excepción (una subclase deBaseException
), la propia excepción, y un objeto objeto traceback que suele encapsular la pila de llamadas en el punto en el que se produjo la última excepción.Si no se está manejando ninguna excepción en ninguna parte de la pila, esta función retorna una tupla que contiene tres valores
None
.Distinto en la versión 3.11: Los campos
type
ytraceback
ahora se derivan delvalue
(la instancia de excepción), de modo que cuando se modifica una excepción mientras se maneja, los cambios se reflejan en los resultados de las subsiguientes llamadas aexc_info()
.
- sys.exec_prefix¶
Una cadena de caracteres que proporciona el prefijo de directorio específico del sitio donde están instalados los archivos Python dependientes de la plataforma; de forma predeterminada, también es
'/usr/local'
. Esto se puede configurar en el momento de la compilación con el argumento--exec-prefix
del script configure. Específicamente, todos los archivos de configuración (por ejemplo, el archivo de encabezadopyconfig.h
) se instalan en el directorioexec_prefix/lib/pythonXY/config
, y los módulos de la biblioteca compartida se instalan enexec_prefix/lib/pythonXY/lib-dynload
, donde XY es el número de versión de Python, por ejemplo,``3.2``.Nota
Si un virtual environment está en efecto, este valor se cambiará en
site.py
para apuntar al entorno virtual. El valor para la instalación de Python seguirá estando disponible a través debase_exec_prefix
.
- sys.executable¶
Una cadena de caracteres que proporciona la ruta absoluta del binario ejecutable para el intérprete de Python, en sistemas donde esto tiene sentido. Si Python no puede recuperar la ruta real a su ejecutable,
sys.executable
será una cadena de caracteres vacía oNone
.
- sys.exit([arg])¶
Genera una excepción
SystemExit
, indicando la intención de salir del intérprete.El argumento opcional arg puede ser un número entero que dé el estado de salida (por defecto es cero) u otro tipo de objeto. Si es un número entero, cero se considera «terminación exitosa» y cualquier valor distinto de cero se considera «terminación anormal» por los shells y similares. La mayoría de los sistemas requieren que esté en el rango 0-127 y, de lo contrario, producen resultados indefinidos. Algunos sistemas tienen una convención para asignar significados específicos a códigos de salida específicos, pero estos generalmente están subdesarrollados; Los programas Unix generalmente usan 2 para errores de sintaxis de línea de comandos y 1 para todos los demás tipos de errores. Si se pasa otro tipo de objeto,
None
equivale a pasar cero, y cualquier otro objeto se imprime enstderr
y da como resultado un código de salida de 1. En particular,sys.exit("algún mensaje de error")
es una forma rápida de salir de un programa cuando ocurre un error.Since
exit()
ultimately «only» raises an exception, it will only exit the process when called from the main thread, and the exception is not intercepted. Cleanup actions specified by finally clauses oftry
statements are honored, and it is possible to intercept the exit attempt at an outer level.Distinto en la versión 3.6: Si se produce un error en la limpieza después de que el intérprete de Python haya detectado
SystemSalir
(como un error al vaciar los datos almacenados en el búfer en los flujos estándar), el estado de salida cambia a 120.
- sys.flags¶
El named tuple flags expone el estado de los indicadores de la línea de comando. Los atributos son de solo lectura.
- flags.debug¶
- flags.inspect¶
- flags.interactive¶
- flags.isolated¶
- flags.optimize¶
- flags.dont_write_bytecode¶
- flags.no_user_site¶
- flags.no_site¶
- flags.ignore_environment¶
- flags.verbose¶
- flags.bytes_warning¶
- flags.quiet¶
- flags.hash_randomization¶
- flags.dev_mode¶
- flags.utf8_mode¶
- flags.safe_path¶
- flags.int_max_str_digits¶
-X int_max_str_digits
(integer string conversion length limitation)- flags.warn_default_encoding¶
Distinto en la versión 3.2: Agregado el atributo
quiet
para el nuevo flag-q
.Nuevo en la versión 3.2.3: El atributo
hash_randomization
.Distinto en la versión 3.3: Eliminado el atributo obsoleto
division_warning
.Distinto en la versión 3.4: Agregado el atributo
isolated
para el flag-I
isolated
.Distinto en la versión 3.7: Se agregó el atributo
dev_mode
para el nuevo Modo de Desarrollo de Python y el atributoutf8_mode
para la bandera-X
utf8
.Distinto en la versión 3.10: Added
warn_default_encoding
attribute for-X
warn_default_encoding
flag.Distinto en la versión 3.11: Added the
safe_path
attribute for-P
option.Distinto en la versión 3.11: Added the
int_max_str_digits
attribute.
- sys.float_info¶
Un named tuple que contiene información sobre el tipo de flotante. Contiene información de bajo nivel sobre la precisión y la representación interna. Los valores corresponden a las diversas constantes de coma flotante definidas en el archivo de encabezado estándar
float.h
para el lenguaje de programación “C”; consulte la sección 5.2.4.2.2 de la norma ISO/IEC C de 1999 [C99], “Características de los tipos flotantes”, para obtener más detalles.¶ atributo
macro float.h
explicación
- float_info.epsilon¶
DBL_EPSILON
difference between 1.0 and the least value greater than 1.0 that is representable as a float.
Vea también
math.ulp()
.- float_info.dig¶
DBL_DIG
The maximum number of decimal digits that can be faithfully represented in a float; see below.
- float_info.mant_dig¶
DBL_MANT_DIG
Float precision: the number of base-
radix
digits in the significand of a float.- float_info.max¶
DBL_MAX
The maximum representable positive finite float.
- float_info.max_exp¶
DBL_MAX_EXP
The maximum integer e such that
radix**(e-1)
is a representable finite float.- float_info.max_10_exp¶
DBL_MAX_10_EXP
The maximum integer e such that
10**e
is in the range of representable finite floats.- float_info.min¶
DBL_MIN
The minimum representable positive normalized float.
Usa
math.ulp(0.0)
para obtener el menor flotante positivo denormalizado representable.- float_info.min_exp¶
DBL_MIN_EXP
The minimum integer e such that
radix**(e-1)
is a normalized float.- float_info.min_10_exp¶
DBL_MIN_10_EXP
The minimum integer e such that
10**e
is a normalized float.- float_info.radix¶
FLT_RADIX
The radix of exponent representation.
- float_info.rounds¶
FLT_ROUNDS
An integer representing the rounding mode for floating-point arithmetic. This reflects the value of the system
FLT_ROUNDS
macro at interpreter startup time:-1
: indeterminable0
: toward zero1
: to nearest2
: toward positive infinity3
: toward negative infinity
All other values for
FLT_ROUNDS
characterize implementation-defined rounding behavior.The attribute
sys.float_info.dig
needs further explanation. Ifs
is any string representing a decimal number with at mostsys.float_info.dig
significant digits, then convertings
to a float and back again will recover a string representing the same decimal value:>>> import sys >>> sys.float_info.dig 15 >>> s = '3.14159265358979' # decimal string with 15 significant digits >>> format(float(s), '.15g') # convert to float and back -> same value '3.14159265358979'
Pero para cadenas con más de
sys.float_info.dig
dígitos significativos, esto no siempre es cierto:>>> s = '9876543211234567' # 16 significant digits is too many! >>> format(float(s), '.16g') # conversion changes value '9876543211234568'
- sys.float_repr_style¶
Una cadena que indica cómo se comporta la función
repr()
para los flotantes. Si la cadena tiene el valor'short'
, entonces para un flotante finitox
,repr(x)
tiene como objetivo producir una cadena corta con la propiedad de quefloat(repr(x)) == x
. Este es el comportamiento habitual en Python 3.1 y posteriores. De lo contrario,float_repr_style
tiene el valor'legacy'
yrepr(x)
se comporta de la misma manera que en las versiones de Python anteriores a la 3.1.Nuevo en la versión 3.1.
- sys.getallocatedblocks()¶
Retorna el número de bloques de memoria asignados actualmente por el intérprete, independientemente de su tamaño. Esta función es principalmente útil para rastrear y depurar pérdidas de memoria. Debido a los cachés internos del intérprete, el resultado puede variar de una llamada a otra; puede que tenga que llamar a
_clear_type_cache()
ygc.collect()
para obtener resultados más predecibles.Si una construcción o implementación de Python no puede calcular razonablemente esta información,
getallocatedblocks()
puede retornar 0 en su lugar.Nuevo en la versión 3.4.
- sys.getandroidapilevel()¶
Retorna la versión de la API de tiempo de compilación de Android como un número entero.
Disponibilidad: Android.
Nuevo en la versión 3.7.
- sys.getdefaultencoding()¶
Retorna el nombre de la codificación de cadena predeterminada actual utilizada por la implementación de Unicode.
- sys.getdlopenflags()¶
Return the current value of the flags that are used for
dlopen()
calls. Symbolic names for the flag values can be found in theos
module (RTLD_xxx
constants, e.g.os.RTLD_LAZY
).Disponibilidad: Unix.
- sys.getfilesystemencoding()¶
Get the filesystem encoding: the encoding used with the filesystem error handler to convert between Unicode filenames and bytes filenames. The filesystem error handler is returned from
getfilesystemencodeerrors()
.Para la mejor compatibilidad, str debe ser usado por nombres de archivos en todos los casos, aunque representar nombres de archivos en bytes también es soportado. Funciones que acepta o retornan nombres de archivos deben soportar tanto str como bytes e internamente convertir el valor a representación preferida por el sistema.
os.fsencode()
yos.fsdecode()
deben usarse para garantizar que se utilizan la codificación correcta y el modo de errores.El codificación del sistema de archivos y manejo de errores está configurado en el inicio de Python por la función
PyConfig_Read()
: verfilesystem_encoding
yfilesystem_errors
que son miembros dePyConfig
.Distinto en la versión 3.2: el resultado de
getfilesystemencoding()
ya no puede serNone
.Distinto en la versión 3.6: Ya no se garantiza que Windows retorne
'mbcs'
. Consulte PEP 529 y_enablelegacywindowsfsencoding()
para obtener más información.Distinto en la versión 3.7: Retorna
'utf-8'
si Modo UTF-8 de Python esta habilitado.
- sys.getfilesystemencodeerrors()¶
Obtener la codificación de sistema de archivos: La codificación usada con el gestor de errores de sistema de archivos para convertir nombres de archivos en Unicode a nombres de archivos en bytes. El gestor de errores del sistema de archivos es retornado desde
getfilesystemencoding()
.os.fsencode()
yos.fsdecode()
deben usarse para garantizar que se utilizan la codificación correcta y el modo de errores.El codificación del sistema de archivos y manejo de errores está configurado en el inicio de Python por la función
PyConfig_Read()
: verfilesystem_encoding
yfilesystem_errors
que son miembros dePyConfig
.Nuevo en la versión 3.6.
- sys.get_int_max_str_digits()¶
Returns the current value for the integer string conversion length limitation. See also
set_int_max_str_digits()
.Nuevo en la versión 3.11.
- sys.getrefcount(object)¶
Retorna el recuento de referencias del object. El recuento retornado es generalmente uno más alto de lo que cabría esperar, porque incluye la referencia (temporal) como argumento para
getrefcount()
.Note that the returned value may not actually reflect how many references to the object are actually held. Consequently, do not rely on the returned value to be accurate, other than a value of 0 or 1.
- sys.getrecursionlimit()¶
Retorna el valor actual del límite de recursividad, la profundidad máxima de la pila de intérpretes de Python. Este límite evita que la recursividad infinita cause un desbordamiento de la pila C y bloquee Python. Se puede configurar mediante
setrecursionlimit()
.
- sys.getsizeof(object[, default])¶
Retorna el tamaño de un objeto en bytes. El objeto puede ser cualquier tipo de objeto. Todos los objetos integrados retornarán resultados correctos, pero esto no tiene por qué ser cierto para las extensiones de terceros, ya que es una implementación específica.
Solo se tiene en cuenta el consumo de memoria atribuido directamente al objeto, no el consumo de memoria de los objetos a los que se refiere.
Si se proporciona, se retornará predeterminado si el objeto no proporciona los medios para recuperar el tamaño. De lo contrario, se lanzará un
TypeError
.getsizeof()
llama al método__sizeof__
del objeto y agrega una sobrecarga adicional del recolector de basura si el objeto es administrado por el recolector de basura.See recursive sizeof recipe for an example of using
getsizeof()
recursively to find the size of containers and all their contents.
- sys.getswitchinterval()¶
Retorna el «intervalo de cambio de hilo» del intérprete; ver
setswitchinterval()
.Nuevo en la versión 3.2.
- sys._getframe([depth])¶
Retorna un objeto de marco de la pila de llamadas. Si se proporciona un entero opcional depth, retorna el objeto de marco que muchas llamadas debajo de la parte superior de la pila. Si eso es más profundo que la pila de llamadas, se lanza
ValueError
. El valor predeterminado de depth es cero, lo que retorna el marco en la parte superior de la pila de llamadas.Raises an auditing event
sys._getframe
with argumentframe
.Detalles de implementación de CPython: Esta función debe utilizarse únicamente para fines internos y especializados. No se garantiza que exista en todas las implementaciones de Python.
- sys.getprofile()¶
Obtiene la función de generador de perfiles establecida por
setprofile()
.
- sys.gettrace()¶
Obtiene la función de seguimiento (trace) establecida por
settrace()
.Detalles de implementación de CPython: La función
gettrace()
está pensada solo para implementar depuradores, perfiladores, herramientas de cobertura y similares. Su comportamiento es parte de la plataforma de implementación, en lugar de parte de la definición del lenguaje y, por lo tanto, es posible que no esté disponible en todas las implementaciones de Python.
- sys.getwindowsversion()¶
Retorna una tupla con nombre que describe la versión de Windows que se está ejecutando actualmente. Los elementos nombrados son major, minor, build, platform, service_pack, service_pack_minor, service_pack_major, suite_mask, product_type y platform_version. service_pack contiene una cadena de caracteres, platform_version una tupla de 3 y todos los demás valores son números enteros. También se puede acceder a los componentes por su nombre, por lo que
sys.getwindowsversion()[0]
es equivalente asys.getwindowsversion().major
. Para compatibilidad con versiones anteriores, solo los primeros 5 elementos se pueden recuperar mediante la indexación.platform will be
2
(VER_PLATFORM_WIN32_NT).product_type puede ser uno de los siguientes valores:
Constante
Significado
1
(VER_NT_WORKSTATION)El sistema es una estación de trabajo.
2
(VER_NT_DOMAIN_CONTROLLER)El sistema es un controlador de dominio.
3
(VER_NT_SERVER)El sistema es un servidor, pero no un controlador de dominio.
This function wraps the Win32
GetVersionEx()
function; see the Microsoft documentation onOSVERSIONINFOEX()
for more information about these fields.platform_version retorna la versión principal, la versión secundaria y el número de compilación del sistema operativo actual, en lugar de la versión que se está emulando para el proceso. Está diseñado para su uso en el registro en lugar de para la detección de características.
Nota
platform_version deriva la versión desde kernel32.dll que puede ser de una versión diferente a la versión de SO. Por favor usar el módulo
platform
para obtener una versión de SO precisa.Disponibilidad: Windows.
Distinto en la versión 3.2: Cambiada a una tupla con nombre y agregado service_pack_minor, service_pack_major, suite_mask, y product_type.
Distinto en la versión 3.6: Agregado platform_version
- sys.get_asyncgen_hooks()¶
Returns an asyncgen_hooks object, which is similar to a
namedtuple
of the form(firstiter, finalizer)
, where firstiter and finalizer are expected to be eitherNone
or functions which take an asynchronous generator iterator as an argument, and are used to schedule finalization of an asynchronous generator by an event loop.Nuevo en la versión 3.6: Ver PEP 525 para más detalles.
Nota
Esta función se ha añadido de forma provisional (consulte PEP 411 para obtener más detalles).
- sys.get_coroutine_origin_tracking_depth()¶
Obtiene la profundidad de seguimiento del origen de la corrutina actual, según lo establecido por
set_coroutine_origin_tracking_depth()
.Nuevo en la versión 3.7.
Nota
Esta función se ha añadido de forma provisional (consulte PEP 411 para obtener más detalles). Úsela sólo para fines de depuración.
- sys.hash_info¶
A named tuple dando parámetros de la implementación de hash numérico. Para obtener más detalles sobre el hash de tipos numéricos, consulte Calculo del hash de tipos numéricos.
- hash_info.width¶
The width in bits used for hash values
- hash_info.modulus¶
The prime modulus P used for numeric hash scheme
- hash_info.inf¶
The hash value returned for a positive infinity
- hash_info.nan¶
(This attribute is no longer used)
- hash_info.imag¶
The multiplier used for the imaginary part of a complex number
- hash_info.algorithm¶
The name of the algorithm for hashing of str, bytes, and memoryview
- hash_info.hash_bits¶
The internal output size of the hash algorithm
- hash_info.seed_bits¶
The size of the seed key of the hash algorithm
Nuevo en la versión 3.2.
Distinto en la versión 3.4: Agregado algoritmo, hash_bits y seed_bits
- sys.hexversion¶
El número de versión codificado como un solo entero. Se garantiza que esto aumentará con cada versión, incluido el soporte adecuado para versiones que no son de producción. Por ejemplo, para probar que el intérprete de Python es al menos la versión 1.5.2, use:
if sys.hexversion >= 0x010502F0: # use some advanced feature ... else: # use an alternative implementation or warn the user ...
Esto se llama
hexversion
ya que solo parece realmente significativo cuando se ve como el resultado de pasarlo a la función incorporadahex()
. El named tuplesys.version_info
puede usarse para una codificación más amigable para los humanos de la misma información.Se pueden encontrar más detalles de
hexversion
en Versiones de API y ABI.
- sys.implementation¶
Un objeto que contiene información sobre la implementación del intérprete de Python en ejecución. Los siguientes atributos deben existir en todas las implementaciones de Python.
name es el identificador de la implementación, por ejemplo
'cpython'
. La cadena de caracteres real está definida por la implementación de Python, pero se garantiza que estará en minúsculas.version es una tupla con nombre, en el mismo formato que
sys.version_info
. Representa la versión de la implementación de Python. Esto tiene un significado distinto de la versión específica del lenguaje de Python al que se ajusta el intérprete que se está ejecutando actualmente, que representasys.version_info
. Por ejemplo, para PyPy 1.8sys.implementation.version
podría sersys.version_info(1, 8, 0, 'final', 0)
, mientras quesys.version_info
seríasys.version_info(2, 7, 2, 'final', 0)
. Para CPython tienen el mismo valor, ya que es la implementación de referencia.hexversion es la versión de implementación en formato hexadecimal, como
sys.hexversion
.cache_tag es la etiqueta utilizada por la maquinaria de importación en los nombres de archivo de los módulos almacenados en caché. Por convención, sería una combinación del nombre y la versión de la implementación, como
'cpython-33'
. Sin embargo, una implementación de Python puede usar algún otro valor si corresponde. Sicache_tag
está configurado comoNone
, indica que el almacenamiento en caché del módulo debe estar deshabilitado.sys.implementation
puede contener atributos adicionales específicos de la implementación de Python. Estos atributos no estándar deben comenzar con un guion bajo y no se describen aquí. Independientemente de su contenido,sys.implementation
no cambiará durante la ejecución del intérprete, ni entre las versiones de implementación. (Sin embargo, puede cambiar entre las versiones del lenguaje Python). Consulte PEP 421 para obtener más información.Nuevo en la versión 3.3.
Nota
La adición de nuevos atributos obligatorios debe pasar por el proceso normal de PEP. Consulte PEP 421 para obtener más información.
- sys.int_info¶
Un named tuple que contiene información sobre la representación interna de Python de los enteros. Los atributos son de solo lectura.
- int_info.bits_per_digit¶
The number of bits held in each digit. Python integers are stored internally in base
2**int_info.bits_per_digit
.
- int_info.sizeof_digit¶
The size in bytes of the C type used to represent a digit.
- int_info.default_max_str_digits¶
The default value for
sys.get_int_max_str_digits()
when it is not otherwise explicitly configured.
- int_info.str_digits_check_threshold¶
The minimum non-zero value for
sys.set_int_max_str_digits()
,PYTHONINTMAXSTRDIGITS
, or-X int_max_str_digits
.
Nuevo en la versión 3.1.
Distinto en la versión 3.11: Added
default_max_str_digits
andstr_digits_check_threshold
.
- sys.__interactivehook__¶
Cuando existe este atributo, su valor se llama automáticamente (sin argumentos) cuando se lanza el intérprete en modo interactivo. Esto se hace después de leer el archivo
PYTHONSTARTUP
, para que pueda establecer este enlace allí. El módulosite
establece este.Lanza un auditing event
cpython.run_interactivehook
con el argumentohook
.Nuevo en la versión 3.4.
- sys.intern(string)¶
Ingresa string en la tabla de cadenas de caracteres «internadas» y retorna la cadena de caracteres interna, que es string en sí misma o una copia. Internar cadenas de caracteres es útil para obtener un poco de rendimiento en la búsqueda de diccionario: si las claves en un diccionario están internadas y la clave de búsqueda está interna, las comparaciones de claves (después del hash) se pueden realizar mediante una comparación de punteros en lugar de una comparación de cadenas. Normalmente, los nombres utilizados en los programas de Python se internan automáticamente, y los diccionarios utilizados para contener los atributos de módulo, clase o instancia tienen claves internas.
Las cadenas de caracteres internas no son inmortales; debe mantener una referencia al valor de retorno de
intern()
para beneficiarse de él.
- sys.is_finalizing()¶
Retorna
True
si el intérprete de Python es shutting down,False
en caso contrario.Nuevo en la versión 3.5.
- sys.last_type¶
- sys.last_value¶
- sys.last_traceback¶
Estas tres variables no siempre están definidas; se establecen cuando no se maneja una excepción y el intérprete imprime un mensaje de error y un seguimiento de la pila. Su uso previsto es permitir que un usuario interactivo importe un módulo depurador y realice una depuración post-mortem sin tener que volver a ejecutar el comando que provocó el error. (El uso típico es
import pdb; pdb.pm()
para ingresar al depurador post-mortem; consulte módulopdb
para obtener más información).El significado de las variables es el mismo que el de los valores retornados de
exc_info()
arriba.
- sys.maxsize¶
Un entero que da el valor máximo que puede tomar una variable de tipo
Py_ssize_t
. Suele ser2**31 - 1
en una plataforma de 32 bits y2** 63 - 1
en una plataforma de 64 bits.
- sys.maxunicode¶
Un número entero que da el valor del punto de código Unicode más grande, es decir,
1114111
(0x10FFFF
en hexadecimal).Distinto en la versión 3.3: Antes PEP 393,
sys.maxunicode
solía ser0xFFFF
o0x10FFFF
, dependiendo de la opción de configuración que especificaba si los caracteres Unicode se almacenaban como UCS-2 o UCS-4.
- sys.meta_path¶
A list of meta path finder objects that have their
find_spec()
methods called to see if one of the objects can find the module to be imported. By default, it holds entries that implement Python’s default import semantics. Thefind_spec()
method is called with at least the absolute name of the module being imported. If the module to be imported is contained in a package, then the parent package’s__path__
attribute is passed in as a second argument. The method returns a module spec, orNone
if the module cannot be found.Ver también
importlib.abc.MetaPathFinder
La clase base abstracta que define la interfaz de los objetos del buscador en
meta_path
.importlib.machinery.ModuleSpec
La clase concreta que
find_spec()
debería retornar instancias de.
Distinto en la versión 3.4: Especificaciones del módulo se introdujeron en Python 3.4, por PEP 451. Las versiones anteriores de Python buscaban un método llamado
find_module()
. Esto todavía se llama como una alternativa si una entradameta_path
no tiene un métodofind_spec()
.
- sys.modules¶
This is a dictionary that maps module names to modules which have already been loaded. This can be manipulated to force reloading of modules and other tricks. However, replacing the dictionary will not necessarily work as expected and deleting essential items from the dictionary may cause Python to fail. If you want to iterate over this global dictionary always use
sys.modules.copy()
ortuple(sys.modules)
to avoid exceptions as its size may change during iteration as a side effect of code or activity in other threads.
- sys.orig_argv¶
La lista de los argumentos originales de la línea de comando que son pasados al ejecutable de Python.
The elements of
sys.orig_argv
are the arguments to the Python interpreter, while the elements ofsys.argv
are the arguments to the user’s program. Arguments consumed by the interpreter itself will be present insys.orig_argv
and missing fromsys.argv
.Nuevo en la versión 3.10.
- sys.path¶
Una lista de cadenas de caracteres que especifica la ruta de búsqueda de módulos. Inicializado desde la variable de entorno
PYTHONPATH
, más un valor predeterminado que depende de la instalación.By default, as initialized upon program startup, a potentially unsafe path is prepended to
sys.path
(before the entries inserted as a result ofPYTHONPATH
):python -m module
command line: prepend the current working directory.python script.py
línea de comandos: anteponer el directorio del script. Si es un enlace simbólico, resuelve los enlaces simbólicos.Líneas de comando
python -c code
ypython
(REPL): anteponen una cadena vacía, que significa el directorio de trabajo actual.
To not prepend this potentially unsafe path, use the
-P
command line option or thePYTHONSAFEPATH
environment variable.A program is free to modify this list for its own purposes. Only strings should be added to
sys.path
; all other data types are ignored during import.
- sys.path_hooks¶
Una lista de invocables que toman un argumento de ruta para intentar crear un finder para la ruta. Si se puede crear un buscador, el invocable debe retornar; de lo contrario, lanza
ImportError
.Especificado originalmente en PEP 302.
- sys.path_importer_cache¶
Un diccionario que actúa como caché para objetos finder. Las claves son rutas que se han pasado a
sys.path_hooks
y los valores son los buscadores que se encuentran. Si una ruta es una ruta de sistema de archivos válida pero no se encuentra ningún buscador ensys.path_hooks
, entonces se almacenaNone
.Especificado originalmente en PEP 302.
Distinto en la versión 3.3:
None
se almacena en lugar deimp.NullImporter
cuando no se encuentra ningún buscador.
- sys.platform¶
Esta cadena de caracteres contiene un identificador de plataforma que se puede usar para agregar componentes específicos de la plataforma a
sys.path
, por ejemplo.Para los sistemas Unix, excepto en Linux y AIX, este es el nombre del sistema operativo en minúsculas como lo retorna
uname -s
con la primera parte de la versión retornada poruname -r
adjunta, por ejemplo'sunos5'
o'freebsd8'
, en el momento en que se construyó Python. A menos que desee probar una versión específica del sistema, se recomienda utilizar el siguiente idioma:if sys.platform.startswith('freebsd'): # FreeBSD-specific code here... elif sys.platform.startswith('linux'): # Linux-specific code here... elif sys.platform.startswith('aix'): # AIX-specific code here...
Para otros sistemas, los valores son:
Sistema
valor
platform
AIX
'aix'
Emscripten
'emscripten'
Linux
'linux'
WASI
'wasi'
Windows
'win32'
Windows/Cygwin
'cygwin'
macOS
'darwin'
Distinto en la versión 3.3: On Linux,
sys.platform
doesn’t contain the major version anymore. It is always'linux'
, instead of'linux2'
or'linux3'
. Since older Python versions include the version number, it is recommended to always use thestartswith
idiom presented above.Distinto en la versión 3.8: On AIX,
sys.platform
doesn’t contain the major version anymore. It is always'aix'
, instead of'aix5'
or'aix7'
. Since older Python versions include the version number, it is recommended to always use thestartswith
idiom presented above.Ver también
os.name
has a coarser granularity.os.uname()
gives system-dependent version information.El módulo
platform
proporciona comprobaciones detalladas de la identidad del sistema.
- sys.platlibdir¶
Nombre del directorio de la biblioteca específica de la plataforma. Se utiliza para construir la ruta de la biblioteca estándar y las rutas de los módulos de extensión instalados.
Es igual a
"lib"
en la mayoría de las plataformas. En Fedora y SuSE, es igual a"lib64"
en plataformas de 64 bits, lo que da las siguientes rutassys.path
(dondeX.Y
es la versiónmayor.menor
de Python):/usr/lib64/pythonX.Y/
: Biblioteca estándar (comoos.py
del móduloos
)/usr/lib64/pythonX.Y/lib-dynload/
: Módulos de extensión C de la biblioteca estándar (como el móduloerrno
, el nombre exacto del archivo es específico de la plataforma)/usr/lib/pythonX.Y/site-packages/
(utilice siemprelib
, nosys.platlibdir
): Módulos de terceros/usr/lib64/pythonX.Y/site-packages/
: Módulos de extensión C de paquetes de terceros
Nuevo en la versión 3.9.
- sys.prefix¶
A string giving the site-specific directory prefix where the platform independent Python files are installed; on Unix, the default is
/usr/local
. This can be set at build time with the--prefix
argument to the configure script. See Rutas de instalación for derived paths.Nota
Si un virtual environment está en efecto, este valor se cambiará en
site.py
para apuntar al entorno virtual. El valor para la instalación de Python seguirá estando disponible a través debase_prefix
.
- sys.ps1¶
- sys.ps2¶
Cadenas de caracteres que especifican el indicador principal y secundario del intérprete. Estos solo se definen si el intérprete está en modo interactivo. Sus valores iniciales en este caso son
'>>>'
y'...'
. Si se asigna un objeto que no es una cadena a cualquiera de las variables, sustr()
se vuelve a evaluar cada vez que el intérprete se prepara para leer un nuevo comando interactivo; esto se puede utilizar para implementar un mensaje dinámico.
- sys.setdlopenflags(n)¶
Set the flags used by the interpreter for
dlopen()
calls, such as when the interpreter loads extension modules. Among other things, this will enable a lazy resolving of symbols when importing a module, if called assys.setdlopenflags(0)
. To share symbols across extension modules, call assys.setdlopenflags(os.RTLD_GLOBAL)
. Symbolic names for the flag values can be found in theos
module (RTLD_xxx
constants, e.g.os.RTLD_LAZY
).Disponibilidad: Unix.
- sys.set_int_max_str_digits(maxdigits)¶
Establece la limitación de la longitud de conversión de cadenas enteras utilizada por este intérprete. Véase también
get_int_max_str_digits()
.Nuevo en la versión 3.11.
- sys.setprofile(profilefunc)¶
Configura la función de perfil del sistema, que le permite implementar un generador de perfiles de código fuente de Python en Python. Consulte el capítulo Los perfiladores de Python para obtener más información sobre el generador de perfiles de Python. La función de perfil del sistema se llama de manera similar a la función de seguimiento del sistema (ver
settrace()
), pero se llama con diferentes eventos, por ejemplo, no se llama para cada línea de código ejecutada (solo al llamar y regresar, pero el evento de retorno se informa incluso cuando se ha establecido una excepción). La función es específica de subprocesos, pero el generador de perfiles no tiene forma de conocer los cambios de contexto entre subprocesos, por lo que no tiene sentido usar esto en presencia de varios subprocesos. Además, su valor de retorno no se usa, por lo que simplemente puede retornarNone
. Un error en la función del perfil provocará su desarmado.Nota
The same tracing mechanism is used for
setprofile()
assettrace()
. To trace calls withsetprofile()
inside a tracing function (e.g. in a debugger breakpoint), seecall_tracing()
.Las funciones de perfil deben tener tres argumentos: frame, event y arg. frame es el marco de pila actual. event es una cadena de caracteres:
'call'
,'return'
,'c_call'
,'c_return'
, o'c_exception'
. arg depende del tipo de evento.Los eventos tienen el siguiente significado:
'call'
Se llama a una función (o se ingresa algún otro bloque de código). Se llama a la función de perfil; arg es
None
.'return'
Una función (u otro bloque de código) está a punto de regresar. Se llama a la función de perfil; arg es el valor que se retornará, o
None
si el evento es causado por una excepción.'c_call'
Una función C está a punto de ser llamada. Esta puede ser una función de extensión o una incorporada. arg es el objeto de función de C.
'c_return'
Ha vuelto una función C. arg es el objeto de función de C.
'c_exception'
Una función C ha generado una excepción. arg es el objeto de función de C.
Lanza un auditing event
sys.setprofile
sin argumentos.
- sys.setrecursionlimit(limit)¶
Establece la profundidad máxima de la pila de intérpretes de Python en limit. Este límite evita que la recursividad infinita cause un desbordamiento de la pila C y bloquee Python.
El límite más alto posible depende de la plataforma. Un usuario puede necesitar establecer un límite más alto cuando tiene un programa que requiere una recursividad profunda y una plataforma que admite un límite más alto. Esto debe hacerse con cuidado, ya que un límite demasiado alto puede provocar un accidente.
Si el nuevo límite es demasiado bajo en la profundidad de recursividad actual, se genera una excepción
RecursionError
.Distinto en la versión 3.5.1: A la excepción
RecursionError
ahora se lanza si el nuevo límite es demasiado bajo en la profundidad de recursión actual.
- sys.setswitchinterval(interval)¶
Establece el intervalo de cambio de hilo del intérprete (en segundos). Este valor de punto flotante determina la duración ideal de los «segmentos de tiempo» asignados a los subprocesos de Python que se ejecutan simultáneamente. Tenga en cuenta que el valor real puede ser mayor, especialmente si se utilizan funciones o métodos internos de larga duración. Además, qué hilo se programa al final del intervalo es decisión del sistema operativo. El intérprete no tiene su propio programador.
Nuevo en la versión 3.2.
- sys.settrace(tracefunc)¶
Configura la función de seguimiento del sistema, que le permite implementar un depurador de código fuente de Python en Python. La función es específica del hilo; para que un depurador admita múltiples subprocesos, debe registrar una función de seguimiento usando
settrace()
para cada subproceso que se depura o usethreading.settrace()
.Las funciones de seguimiento deben tener tres argumentos: frame, event y arg. frame es el marco de pila actual. event es una cadena de caracteres:
'call'
,'line'
,'return'
,'exception'
or'opcode'
. arg depende del tipo de evento.La función de rastreo se invoca (con event establecido en
'call'
) cada vez que se ingresa un nuevo ámbito local; debe retornar una referencia a una función de rastreo local que se usará para el nuevo alcance, oNone
si no se debe rastrear el alcance.The local trace function should return a reference to itself, or to another function which would then be used as the local trace function for the scope.
Si se produce algún error en la función de seguimiento, se desarmará, al igual que se llama a
settrace(None)
.Nota
Tracing is disabled while calling the trace function (e.g. a function set by
settrace()
). For recursive tracing seecall_tracing()
.Los eventos tienen el siguiente significado:
'call'
Se llama a una función (o se ingresa algún otro bloque de código). Se llama a la función de rastreo global; arg es
None
; el valor de retorno especifica la función de rastreo local.'line'
The interpreter is about to execute a new line of code or re-execute the condition of a loop. The local trace function is called; arg is
None
; the return value specifies the new local trace function. SeeObjects/lnotab_notes.txt
for a detailed explanation of how this works. Per-line events may be disabled for a frame by settingf_trace_lines
toFalse
on that frame.'return'
Una función (u otro bloque de código) está a punto de regresar. Se llama a la función de rastreo local; arg es el valor que se retornará, o
None
si el evento es causado por una excepción. Se ignora el valor de retorno de la función de seguimiento.'exception'
Ha ocurrido una excepción. Se llama a la función de rastreo local; arg es una tupla
(exception, value, traceback)
; el valor de retorno especifica la nueva función de rastreo local.'opcode'
The interpreter is about to execute a new opcode (see
dis
for opcode details). The local trace function is called; arg isNone
; the return value specifies the new local trace function. Per-opcode events are not emitted by default: they must be explicitly requested by settingf_trace_opcodes
toTrue
on the frame.
Tenga en cuenta que como una excepción se propaga a lo largo de la cadena de llamadas de funciones, se lanza un evento de
'excepción'
en cada nivel.Para un uso más detallado, es posible establecer una función de seguimiento asignando
frame.f_trace = tracefunc
explícitamente, en lugar de confiar en que se establezca indirectamente a través del valor de retorno de una función de seguimiento ya instalada. Esto también es necesario para activar la función de seguimiento en el marco actual, lo cualsettrace()
no funciona. Tenga en cuenta que para que esto funcione, se debe haber instalado una función de rastreo global consettrace()
para habilitar la maquinaria de rastreo en tiempo de ejecución, pero no necesita ser la misma función de rastreo (por ejemplo, podría ser una función de rastreo de sobrecarga baja que simplemente retornaNone
para deshabilitarse inmediatamente en cada cuadro).Para obtener más información sobre los objetos de código y marco, consulte Jerarquía de tipos estándar.
Lanza un auditing event
sys.settrace
sin argumentos.Detalles de implementación de CPython: La función
settrace()
está pensada únicamente para implementar depuradores, perfiladores, herramientas de cobertura y similares. Su comportamiento es parte de la plataforma de implementación, en lugar de parte de la definición del lenguaje y, por lo tanto, es posible que no esté disponible en todas las implementaciones de Python.Distinto en la versión 3.7:
'opcode'
event type added;f_trace_lines
andf_trace_opcodes
attributes added to frames
- sys.set_asyncgen_hooks([firstiter] [, finalizer])¶
Acepta dos argumentos de palabras clave opcionales que son invocables que aceptan un asynchronous generator iterator como argumento. Se llamará al firstiter invocable cuando se repita un generador asincrónico por primera vez. Se llamará al finalizer cuando un generador asincrónico esté a punto de ser recolectado como basura.
Lanza un auditing event
sys.set_asyncgen_hooks_firstiter
sin argumentos.Lanza un auditing event
sys.set_asyncgen_hooks_finalizer
sin argumentos.Se lanzan dos eventos de auditoría porque la API subyacente consta de dos llamadas, cada una de las cuales debe generar su propio evento.
Nuevo en la versión 3.6: Ver PEP 525 para más detalles, y para un ejemplo de referencia de un método finalizer ver la implementación de
asyncio.Loop.shutdown_asyncgens
en Lib/asyncio/base_events.pyNota
Esta función se ha añadido de forma provisional (consulte PEP 411 para obtener más detalles).
- sys.set_coroutine_origin_tracking_depth(depth)¶
Permite habilitar o deshabilitar el seguimiento de origen de rutina. Cuando está habilitado, el atributo
cr_origin
en los objetos de corrutina contendrá una tupla de (nombre de archivo, número de línea, nombre de función) tuplas que describen el rastreo donde se creó el objeto de corrutina, con la llamada más reciente primero. Cuando esté deshabilitado,cr_origin
será None.Para habilitarlo, pase un valor de depth mayor que cero; esto establece el número de fotogramas cuya información será capturada. Para deshabilitar, pase set depth a cero.
Esta configuración es específica de cada hilo.
Nuevo en la versión 3.7.
Nota
Esta función se ha añadido de forma provisional (consulte PEP 411 para obtener más detalles). Úsela sólo para fines de depuración.
- sys._enablelegacywindowsfsencoding()¶
Cambia la codificación del sistema de archivos y manejo de errores a “mbcs” y “replace” respectivamente, para mantener la coherencia con las versiones de Python anteriores a la 3.6.
Esto es equivalente a definir la variable de entorno
PYTHONLEGACYWINDOWSFSENCODING
antes de iniciar Python.También ver
sys.getfilesystemencoding()
ysys.getfilesystemencodeerrors()
.Disponibilidad: Windows.
Nuevo en la versión 3.6: Consulte PEP 529 para obtener más detalles.
- sys.stdin¶
- sys.stdout¶
- sys.stderr¶
Objetos de archivo utilizado por el intérprete para entradas, salidas y errores estándar:
stdin
se usa para todas las entradas interactivas (incluidas las llamadas ainput()
);stdout
se usa para la salida deprint()
y expression y para las solicitudes deinput()
;Las propias indicaciones del intérprete y sus mensajes de error van a
stderr
.
Estos flujos son regulares archivos de texto como los retornados por la función
open()
. Sus parámetros se eligen de la siguiente manera:La codificación y manejo de error son inicializado desde
PyConfig.stdio_encoding
yPyConfig.stdio_errors
.En Windows, se usa UTF-8 para el dispositivo de consola. Los dispositivos que no son caracteres, como archivos de disco y tuberías, utilizan la codificación de la configuración regional del sistema (por ejemplo, la página de códigos ANSI). Los dispositivos de caracteres que no son de consola, como NUL (es decir, donde
isatty()
retornaTrue
) utilizan el valor de las páginas de códigos de entrada y salida de la consola al inicio, respectivamente para stdin y stdout/stderr. Esto pasa por defecto al sistema de codificación local si el proceso no esta inicialmente acoplado a una consola.El comportamiento especial de la consola se puede anular configurando la variable de entorno PYTHONLEGACYWINDOWSSTDIO antes de iniciar Python. En ese caso, las páginas de códigos de la consola se utilizan como para cualquier otro dispositivo de caracteres.
En todas las plataformas, puede anular la codificación de caracteres configurando la variable de entorno
PYTHONIOENCODING
antes de iniciar Python o usando la nueva-X
utf8
opción de línea de comando yPYTHONUTF8
variable de entorno. Sin embargo, para la consola de Windows, esto solo se aplica cuandoPYTHONLEGACYWINDOWSSTDIO
también está configurado.Cuando es interactivo, el flujo de
stdout
se almacena en búfer de línea. En caso contrario, se almacena en búfer de bloque como los archivos de texto normales. El flujostderr
tiene un búfer de línea en ambos casos. Puede hacer que ambos flujos no tengan búfer pasando la opción de línea de comandos-u
o estableciendo la variable de entornoPYTHONUNBUFFERED
.
Distinto en la versión 3.9: Ahora,
stderr
no interactivo tiene búfer de línea en lugar de búfer completo.Nota
Para escribir o leer datos binarios desde/hacia los flujos estándar, use el objeto binario subyacente
buffer
. Por ejemplo, para escribir bytes enstdout
, usesys.stdout.buffer.write(b'abc')
.However, if you are writing a library (and do not control in which context its code will be executed), be aware that the standard streams may be replaced with file-like objects like
io.StringIO
which do not support thebuffer
attribute.
- sys.__stdin__¶
- sys.__stdout__¶
- sys.__stderr__¶
Estos objetos contienen los valores originales de
stdin
,stderr
ystdout
al inicio del programa. Se utilizan durante la finalización y podrían ser útiles para imprimir en el flujo estándar real sin importar si el objetosys.std*
ha sido redirigido.También se puede utilizar para restaurar los archivos reales a objetos de archivo de trabajo conocidos en caso de que se hayan sobrescrito con un objeto roto. Sin embargo, la forma preferida de hacer esto es guardar explícitamente la secuencia anterior antes de reemplazarla y restaurar el objeto guardado.
Nota
En algunas condiciones,
stdin
,stdout
ystderr
, así como los valores originales__stdin__
,__stdout__
y__stderr__
pueden serNone
. Suele ser el caso de las aplicaciones GUI de Windows que no están conectadas a una consola y las aplicaciones Python que comienzan con pythonw.
- sys.stdlib_module_names¶
Un fronzenset de strings que contiene los nombres de los módulos de la librería estándar.
Es lo mismo para todas las plataformas. Módulos que no están disponibles en algunas plataformas y deshabilitados durante la construcción de Python también son listados. Todos los tipos de modulo son listados: Python puro, incorporados, congelados y módulos de extensión. Módulos de prueba son excluidos.
Para paquete, solo el principal es listado; sub-paquetes y sub-módulos no son listados. Por ejemplo, el paquete
email
es listado, pero el sub-paqueteemail.mime
y el sub-móduloemail.message
no es listado.See also the
sys.builtin_module_names
list.Nuevo en la versión 3.10.
- sys.thread_info¶
Un named tuple que contiene información sobre la implementación del hilo.
- thread_info.name¶
The name of the thread implementation:
"nt"
: Windows threads"pthread"
: POSIX threads"pthread-stubs"
: stub POSIX threads (on WebAssembly platforms without threading support)"solaris"
: Solaris threads
- thread_info.lock¶
The name of the lock implementation:
"semaphore"
: a lock uses a semaphore"mutex+cond"
: a lock uses a mutex and a condition variableNone
si esta información es desconocida
- thread_info.version¶
The name and version of the thread library. It is a string, or
None
if this information is unknown.
Nuevo en la versión 3.3.
- sys.tracebacklimit¶
Cuando esta variable se establece en un valor entero, determina el número máximo de niveles de información de rastreo que se imprime cuando ocurre una excepción no controlada. El valor predeterminado es
1000
. Cuando se establece en0
o menos, toda la información de rastreo se suprime y solo se imprimen el tipo y el valor de excepción.
- sys.unraisablehook(unraisable, /)¶
Maneja una excepción que no se puede lanzar.
Se llama cuando se ha producido una excepción pero no hay forma de que Python la maneje. Por ejemplo, cuando un destructor lanza una excepción o durante la recolección de basura (
gc.collect()
).El argumento unraisable tiene los siguientes atributos:
exc_type
: Exception type.exc_value
: Exception value, can beNone
.exc_traceback
: Exception traceback, can beNone
.err_msg
: Error message, can beNone
.object
: Object causing the exception, can beNone
.
The default hook formats
err_msg
andobject
as:f'{err_msg}: {object!r}'
; use «Exception ignored in» error message iferr_msg
isNone
.sys.unraisablehook()
se puede anular para controlar cómo se manejan las excepciones que no se pueden evaluar.Ver también
excepthook()
which handles uncaught exceptions.Advertencia
Storing
exc_value
using a custom hook can create a reference cycle. It should be cleared explicitly to break the reference cycle when the exception is no longer needed.Storing
object
using a custom hook can resurrect it if it is set to an object which is being finalized. Avoid storingobject
after the custom hook completes to avoid resurrecting objects.Raise an auditing event
sys.unraisablehook
with arguments hook, unraisable when an exception that cannot be handled occurs. The unraisable object is the same as what will be passed to the hook. If no hook has been set, hook may beNone
.Nuevo en la versión 3.8.
- sys.version¶
Una cadena de caracteres que contiene el número de versión del intérprete de Python más información adicional sobre el número de compilación y el compilador utilizado. Esta cadena se muestra cuando se inicia el intérprete interactivo. No extraiga información de la versión de él, en su lugar, use
version_info
y las funciones proporcionadas por el móduloplatform
.
- sys.api_version¶
La versión de API C para este intérprete. Los programadores pueden encontrar esto útil al depurar conflictos de versiones entre Python y módulos de extensión.
- sys.version_info¶
Una tupla que contiene los cinco componentes del número de versión: major, minor, micro, releaselevel, y serial. Todos los valores excepto releaselevel son números enteros; el nivel de lanzamiento es
'alpha'
,'beta'
,'candidate'
, o'final'
. El valor deversion_info
correspondiente a la versión 2.0 de Python es(2, 0, 0, 'final', 0)
. También se puede acceder a los componentes por su nombre, por lo quesys.version_info[0]
es equivalente asys.version_info.major
y así sucesivamente.Distinto en la versión 3.1: Se agregaron atributos de componentes con nombre.
- sys.warnoptions¶
Este es un detalle de implementación del marco de advertencias; No modifique este valor. Consulte el módulo
warnings
para obtener más información sobre el marco de advertencias.
- sys.winver¶
The version number used to form registry keys on Windows platforms. This is stored as string resource 1000 in the Python DLL. The value is normally the major and minor versions of the running Python interpreter. It is provided in the
sys
module for informational purposes; modifying this value has no effect on the registry keys used by Python.Disponibilidad: Windows.
- sys._xoptions¶
Un diccionario de las diversas flags específicas de la implementación pasa a través de la opción de línea de comandos
-X
. Los nombres de las opciones se asignan a sus valores, si se dan explícitamente, o aTrue
. Ejemplo:$ ./python -Xa=b -Xc Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys._xoptions {'a': 'b', 'c': True}
Detalles de implementación de CPython: Esta es una forma específica de CPython de acceder a las opciones que se pasan a través de
-X
. Otras implementaciones pueden exportarlos a través de otros medios, o no exportarlos.Nuevo en la versión 3.2.
Citas
ISO/IEC 9899:1999. «Programming languages – C.» A public draft of this standard is available at https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf.