1. Línea de comandos y entorno¶
El intérprete de CPython analiza la línea de comandos y el entorno en busca de varias configuraciones.
Los esquemas de línea de comandos de otras implementaciones pueden diferir. Véase Implementaciones alternativas para obtener más recursos.
1.1. Línea de comando¶
Al invocar Python, puede especificar cualquiera de estas opciones:
python [-bBdEhiIOPqRsSuvVWx?] [-c command | -m module-name | script | - ] [args]
El caso de uso más común es, por supuesto, una simple invocación de un script:
python myscript.py
1.1.1. Opciones de interfaz¶
La interfaz del intérprete es similar a la del shell UNIX, pero proporciona algunos métodos adicionales de invocación:
When called with standard input connected to a tty device, it prompts for commands and executes them until an EOF (an end-of-file character, you can produce that with Ctrl-D on UNIX or Ctrl-Z, Enter on Windows) is read. For more on interactive mode, see Modo interactivo.
Cuando se llama con un argumento de nombre de archivo o con un archivo como entrada estándar, lee y ejecuta un script de ese archivo.
Cuando se llama con un argumento de nombre de directorio, lee y ejecuta un script con el nombre adecuado desde ese directorio.
Cuando se llama con
-c comando, ejecuta las instrucciones de Python dadas como command. Aquí comando puede contener varias instrucciones separadas por nuevas líneas. ¡El espacio en blanco principal es significativo en las instrucciones de Python!Cuando se llama con
-m module-name, el módulo dado se encuentra en la ruta del módulo Python y se ejecuta como un script.
En el modo no interactivo, toda la entrada se analiza antes de ejecutarse.
Una opción de interfaz termina la lista de opciones consumidas por el intérprete, todos los argumentos consecutivos terminarán en sys.argv – tenga en cuenta que el primer elemento, subíndice cero (sys.argv[0]), es una cadena que refleja el origen del programa.
- -c <command>¶
Ejecute el código de Python en comando. comando puede ser una o más sentencias separadas por nuevas líneas, con espacio en blanco inicial significativo como en el código normal del módulo.
Si se proporciona esta opción, el primer elemento de
sys.argvserá"-c"y el directorio actual se agregará al inicio desys.path(permitiendo que los módulos de ese directorio se importen como módulos de nivel superior).Lanza un auditing event
cpython.run_commandcon el argumentocommand.Distinto en la versión 3.14: command is automatically dedented before execution.
- -m <module-name>¶
Busque
sys.pathpara el módulo con nombre y ejecute su contenido como el módulo__main__.Dado que el argumento es un nombre módulo, no debe dar una extensión de archivo (
.py). El nombre del módulo debe ser un nombre de módulo Python absoluto válido, pero es posible que la implementación no siempre lo aplique (por ejemplo, puede permitirle usar un nombre que incluya un guión).También se permiten los nombres de paquetes (incluidos los paquetes de espacio de nombres). Cuando se proporciona un nombre de paquete en lugar de un módulo normal, el intérprete ejecutará
<pkg>.__main__como módulo principal. Este comportamiento es deliberadamente similar al manejo de directorios y archivos zip que se pasan al intérprete como argumento del script.Nota
Esta opción no se puede utilizar con módulos integrados y módulos de extensión escritos en C, ya que no tienen archivos de módulo Python. Sin embargo, todavía se puede utilizar para módulos precompilados, incluso si el archivo de origen original no está disponible.
Si se da esta opción, el primer elemento de
sys.argvserá la ruta de acceso completa al archivo de módulo (mientras se encuentra el archivo de módulo, el primer elemento se establecerá en"-m"). Al igual que con la opción-c, el directorio actual se agregará al inicio desys.path.-Ioption can be used to run the script in isolated mode wheresys.pathcontains neither the current directory nor the user’s site-packages directory. AllPYTHON*environment variables are ignored, too.Muchos módulos de biblioteca estándar contienen código que se invoca en su ejecución como script. Un ejemplo es el módulo
timeit:python -m timeit -s "setup here" "benchmarked code here" python -m timeit -h # for details
Retorna un auditing event
cpython.run_modulecon el argumentonombre-módulo.Ver también
runpy.run_module()Funcionalidad equivalente directamente disponible para el código Python
PEP 338 – Ejecución de módulos como scripts
Distinto en la versión 3.1: Proporcione el nombre del paquete para ejecutar un submódulo
__main__.Distinto en la versión 3.4: paquetes de espacio de nombres también son compatibles
- -
Leer comandos de entrada estándar (
sys.stdin). Si la entrada estándar es un terminal,-iestá implícita.Si se da esta opción, el primer elemento de
sys.argvserá"-"y el directorio actual se agregará al inicio desys.path.Lanza un evento auditing event
cpython.run_stdinsin argumentos.
- <script>
Ejecute el código Python contenido en script, que debe ser una ruta de acceso del sistema de archivos (absoluta o relativa) que haga referencia a un archivo Python, un directorio que contenga un archivo
__main__.pyo un archivo zip que contenga un archivo__main__.py.Si se proporciona esta opción, el primer elemento de
sys.argvserá el nombre del script como se indica en la línea de comandos.Si el nombre del script hace referencia directamente a un archivo Python, el directorio que contiene ese archivo se agrega al inicio de
sys.path, y el archivo se ejecuta como el módulo__main__.Si el nombre del script hace referencia a un directorio o zipfile, el nombre del script se agrega al inicio de
sys.pathy el archivo__main__.pyen esa ubicación se ejecuta como el módulo__main__.-Ioption can be used to run the script in isolated mode wheresys.pathcontains neither the script’s directory nor the user’s site-packages directory. AllPYTHON*environment variables are ignored, too.Lanza un auditing event
cpython.run_filecon el argumentofilename.Ver también
runpy.run_path()Funcionalidad equivalente directamente disponible para el código Python
Si no se da ninguna opción de interfaz, -i está implícita, sys.argv[0] es una cadena vacía (") y el directorio actual se agregará al inicio de sys.path. Además, la finalización de tabulación y la edición del historial se habilitan automáticamente, si están disponibles en su plataforma (consulte Configuración de Readline).
Ver también
Distinto en la versión 3.4: Habilitación automática de la finalización de pestañas y edición del historial.
1.1.2. Opciones genéricas¶
- --help-env¶
Imprima una breve descripción de las variables de entorno específicas de Python y salga.
Added in version 3.11.
- --help-xoptions¶
Imprima una descripción de las opciones
-Xespecíficas de la implementación y salga.Added in version 3.11.
- --help-all¶
Imprima información completa de uso y salga.
Added in version 3.11.
- -V¶
- --version¶
Imprima el número de versión de Python y salga. Ejemplo de salida podría ser:
Python 3.8.0b2+
Cuando se le dé dos veces, imprima más información sobre la compilación, como:
Python 3.8.0b2+ (3.8:0c076caaa8, Apr 20 2019, 21:55:00) [GCC 6.2.0 20161005]
Added in version 3.6: La opción
-VV.
1.1.3. Opciones diversas¶
- -b¶
Issue a warning when converting
bytesorbytearraytostrwithout specifying encoding or comparingbytesorbytearraywithstrorbyteswithint. Issue an error when the option is given twice (-bb).
- -B¶
Si se da, Python no intentará escribir archivos
.pycen la importación de módulos de origen. Véase tambiénPYTHONDONTWRITEBYTECODE.
- --check-hash-based-pycs default|always|never¶
Controle el comportamiento de validación de los archivos
.pycbasados en hash. Véase Invalidación del código de bytes en caché. Cuando se establece endefault, los archivos de caché de código de bytes basados en hash marcados y desmarcados se validan según su semántica predeterminada. Cuando se establece enalways, todos los archivos basados en hash.pyc, ya estén marcados o desmarcados, se validan con su archivo de origen correspondiente. Cuando se establece ennever, los archivos basados en hash.pycno se validan con sus archivos de origen correspondientes.Esta opción no afecta a la semántica de los archivos
.pycbasados en la marca de tiempo.
- -d¶
Activa la salida de depuración (solo para expertos, dependiendo de las opciones de compilación). Véase también la variable de ambiente
PYTHONDEBUG.Esta opción necesita una compilación de depuración de Python, de lo contrario será ignorado.
- -E¶
Ignore all
PYTHON*environment variables, e.g.PYTHONPATHandPYTHONHOME, that might be set.
- -i¶
Enter interactive mode after execution.
Using the
-ioption will enter interactive mode in any of the following circumstances:Interactive mode will start even when
sys.stdindoes not appear to be a terminal. ThePYTHONSTARTUPfile is not read.Esto puede ser útil para inspeccionar variables globales o un seguimiento de pila cuando un script lanza una excepción. Véase también
PYTHONINSPECT.
- -I¶
Ejecute Python en modo aislado. Esto también implica las opciones
-E,-Py-s.In isolated mode
sys.pathcontains neither the script’s directory nor the user’s site-packages directory. AllPYTHON*environment variables are ignored, too. Further restrictions may be imposed to prevent the user from injecting malicious code.Added in version 3.4.
- -O¶
Quite las instrucciones assert y cualquier código condicionado al valor de
__debug__. Aumente el nombre de archivo para los archivos compilados (bytecode) agregando.opt-1antes de la extensión.pyc(consulte PEP 488). Véase tambiénPYTHONOPTIMIZE.Distinto en la versión 3.5: Modifique los nombres de archivo
.pycsegún PEP 488.
- -OO¶
Haga
-Oy también deseche las docstrings. Aumente el nombre de archivo para los archivos compilados (bytecode) agregando.opt-2antes de la extensión.pyc(consulte PEP 488).Distinto en la versión 3.5: Modifique los nombres de archivo
.pycsegún PEP 488.
- -P¶
No anteponga una ruta potencialmente insegura a
sys.path:python -m modulecommand line: No anteponga el directorio de trabajo actual.python script.pycommand line: No anteponga el directorio del script. Si es un enlace simbólico, resuelva los enlaces simbólicos.python -c codeypython(REPL) command lines: No anteponga una cadena vacía, lo que significa el directorio de trabajo actual.
Consulte también la variable de entorno
PYTHONSAFEPATHy las opciones-Ey-I(aisladas).Added in version 3.11.
- -q¶
No muestres los mensajes de copyright y versión incluso en modo interactivo.
Added in version 3.2.
- -R¶
Turn on hash randomization. This option only has an effect if the
PYTHONHASHSEEDenvironment variable is set to anything other thanrandom, since hash randomization is enabled by default.On previous versions of Python, this option turns on hash randomization, so that the
__hash__()values of str and bytes objects are «salted» with an unpredictable random value. Although they remain constant within an individual Python process, they are not predictable between repeated invocations of Python.Hash randomization is intended to provide protection against a denial-of-service caused by carefully chosen inputs that exploit the worst case performance of a dict construction, O(n2) complexity. See http://ocert.org/advisories/ocert-2011-003.html for details.
PYTHONHASHSEEDle permite establecer un valor fijo para el secreto de inicialización hash.Added in version 3.2.3.
Distinto en la versión 3.7: La opción ya no se omite.
- -s¶
No agregue el
user site-packages directoryasys.path.See also
PYTHONNOUSERSITE.Ver también
PEP 370 – Directorio de paquetes de sitio por usuario
- -S¶
Deshabilite la importación del módulo
sitey las manipulaciones dependientes del sitio desys.pathque conlleva. También deshabilite estas manipulaciones sisitese importa explícitamente más tarde (llame asite.main()si desea que se activen).
- -u¶
Forzar que las corrientes stdout y stderr no estén en búfer. Esta opción no tiene ningún efecto en la secuencia stdin.
Véase también
PYTHONUNBUFFERED.Distinto en la versión 3.7: La capa de texto de las secuencias stdout y stderr ahora no está en búfer.
- -v¶
Imprime un mensaje cada vez que se inicialice un módulo, mostrando el lugar (nombre de archivo o módulo integrado) desde el que se carga. Cuando se le pasa dos veces (
-vv), imprime un mensaje para cada archivo que se comprueba al buscar un módulo. También proporciona información sobre la limpieza del módulo en la salida.Distinto en la versión 3.10: El módulo
siteinforma las rutas específicas del sitio y los archivos.pthque se están procesando.Véase también
PYTHONVERBOSE.
- -W arg¶
Control de advertencia. La maquinaria de advertencia de Python por defecto imprime mensajes de advertencia en
sys.stderr.La configuración más sencilla aplica una acción determinada incondicionalmente a todas las advertencias emitidas por un proceso (incluso aquellas que de otro modo se ignoran de forma predeterminada):
-Wdefault # Warn once per call location -Werror # Convert to exceptions -Walways # Warn every time -Wall # Same as -Walways -Wmodule # Warn once per calling module -Wonce # Warn once per Python process -Wignore # Never warn
Los nombres de acción se pueden abreviar como se desee y el intérprete los resolverá con el nombre de acción adecuado. Por ejemplo,
-Wies lo mismo que-Wignore.La forma completa del argumento es:
action:message:category:module:lineno
Los campos vacíos cuadran con todos los valores; los campos vacíos finales pueden omitirse. Por ejemplo,
-W ignore::DeprecationWarningignora todas las advertencias de DeprecationWarning.El campo action es como se explicó anteriormente, pero solo se aplica a las advertencias que coinciden con los campos restantes.
El campo message debe coincidir con el mensaje de advertencia completo; esta coincidencia no distingue entre mayúsculas y minúsculas.
El campo category coincide con la categoría de advertencia (por ej.
DeprecationWarning). Debe ser un nombre de clase; la coincidencia prueba si la categoría de advertencia real del mensaje es una subclase de la categoría de advertencia especificada.El campo module coincide con el nombre de dominio completo del módulo; esta coincidencia distingue entre mayúsculas y minúsculas.
El campo lineno coincide con el número de línea, donde cero corresponde a todos los números de línea y, por lo tanto, es equivalente a número de línea omitido.
Se pueden dar varias opciones
-W; cuando una advertencia coincide con más de una opción, se realiza la acción para la última opción de coincidencia. Las opciones invalidas-Wson ignoradas (aunque se imprime un mensaje de advertencia sobre opciones no válidas cuando se emite la primera advertencia).Las advertencias también se pueden controlar utilizando la variable de entorno
PYTHONWARNINGSy desde un programa Python utilizando el módulowarnings. Por ejemplo, la funciónwarnings.filterwarnings()puede ser usarse con una expresión regular en el mensaje de advertencia.Consulte El filtro de advertencias y Descripción de los filtros de advertencia para obtener más detalles.
- -x¶
Omita la primera línea de la fuente, permitiendo el uso de formas que no sean de Unix de
#!cmd. Esto está destinado a un hackeo específico de DOS solamente.
- -X¶
Reservado para varias opciones específicas de la implementación. CPython define actualmente los siguientes valores posibles:
-X faulthandlerpara habilitarfaulthandler. VéasePYTHONFAULTHANDLERpara obtener más información.Added in version 3.3.
-X showrefcountpara generar el recuento total de referencias y el número de bloques de memoria utilizados cuando finalice el programa o después de cada instrucción en el intérprete interactivo. Esto sólo funciona en compilaciones de depuración.Added in version 3.4.
-X tracemallocpara iniciar el seguimiento de las asignaciones de memoria de Python mediante el módulotracemalloc. De forma predeterminada, solo el marco más reciente se almacena en un seguimiento de un seguimiento. Utilice-X tracemalloc=NFRAMEpara iniciar el seguimiento con un límite de rastreo de marcos NFRAME. Consulte eltracemalloc.start()yPYTHONTRACEMALLOCpara obtener más información.Added in version 3.4.
-X int_max_str_digitsconfigura la limitación de longitud de conversión de cadena de tipo entero. Véase tambiénPYTHONINTMAXSTRDIGITS.Added in version 3.11.
-X importtimeto show how long each import takes. It shows module name, cumulative time (including nested imports) and self time (excluding nested imports). Note that its output may be broken in multi-threaded application. Typical usage ispython -X importtime -c 'import asyncio'.-X importtime=2enables additional output that indicates when an imported module has already been loaded. In such cases, the stringcachedwill be printed in both time columns.See also
PYTHONPROFILEIMPORTTIME.Added in version 3.7.
Distinto en la versión 3.14: Added
-X importtime=2to also trace imports of loaded modules, and reserved values other than1and2for future use.-X dev: enable Python Development Mode, introducing additional runtime checks that are too expensive to be enabled by default. See alsoPYTHONDEVMODE.Added in version 3.7.
-X utf8habilita el modo Python UTF-8.-X utf8=0desactiva explícitamente el modo Python UTF-8 (incluso cuando al contrario se activaría automáticamente). VéasePYTHONUTF8.Added in version 3.7.
-X pycache_prefix=PATHpermite escribir archivos.pycen un árbol paralelo enraizado en el directorio dado en lugar de en el árbol de código. Véase tambiénPYTHONPYCACHEPREFIX.Added in version 3.8.
-X warn_default_encodingemite unEncodingWarningcuando se usa la codificación predeterminada específica de la configuración regional para abrir archivos. Vea tambiénPYTHONWARNDEFAULTENCODING.Added in version 3.10.
-X no_debug_rangesdeshabilita la inclusión de tablas que asignan información de ubicación adicional (línea final, desplazamiento de columna inicial y desplazamiento de columna final) a cada instrucción en los objetos de código. Esto es útil cuando se desean objetos de código más pequeños y archivos pyc, además de suprimir los indicadores de ubicación visuales adicionales cuando el intérprete muestra rastreos. Véase tambiénPYTHONNODEBUGRANGES.Added in version 3.11.
-X frozen_modulesdetermines whether or not frozen modules are ignored by the import machinery. A value ofonmeans they get imported andoffmeans they are ignored. The default isonif this is an installed Python (the normal case). If it’s under development (running from the source tree) then the default isoff. Note that theimportlib_bootstrapandimportlib_bootstrap_externalfrozen modules are always used, even if this flag is set tooff. See alsoPYTHON_FROZEN_MODULES.Added in version 3.11.
-X perfhabilita el soporte para el perfiladorperfde Linux. Cuando se proporciona esta opción, el perfiladorperfpodrá informar llamadas de Python. Esta opción sólo está disponible en algunas plataformas y no hará nada si no es compatible con el sistema actual. El valor predeterminado es «off». Consulte tambiénPYTHONPERFSUPPORTy Soporte de Python para el perfilador perf de Linux.Added in version 3.12.
-X perf_jitenables support for the Linuxperfprofiler with DWARF support. When this option is provided, theperfprofiler will be able to report Python calls using DWARF information. This option is only available on some platforms and will do nothing if is not supported on the current system. The default value is «off». See alsoPYTHON_PERF_JIT_SUPPORTand Soporte de Python para el perfilador perf de Linux.Added in version 3.13.
-X disable_remote_debugdisables the remote debugging support as described in PEP 768. This includes both the functionality to schedule code for execution in another process and the functionality to receive code for execution in the current process.This option is only available on some platforms and will do nothing if is not supported on the current system. See also
PYTHON_DISABLE_REMOTE_DEBUGand PEP 768.Added in version 3.14.
-X cpu_count=noverridesos.cpu_count(),os.process_cpu_count(), andmultiprocessing.cpu_count(). n must be greater than or equal to 1. This option may be useful for users who need to limit CPU resources of a container system. See alsoPYTHON_CPU_COUNT. If n isdefault, nothing is overridden.Added in version 3.13.
-X presite=package.modulespecifies a module that should be imported before thesitemodule is executed and before the__main__module exists. Therefore, the imported module isn’t__main__. This can be used to execute code early during Python initialization. Python needs to be built in debug mode for this option to exist. See alsoPYTHON_PRESITE.Added in version 3.13.
-X gil=0,1forces the GIL to be disabled or enabled, respectively. Setting to0is only available in builds configured with--disable-gil. See alsoPYTHON_GILand Free-threaded CPython.Added in version 3.13.
-X thread_inherit_context=0,1causesThreadto, by default, use a copy of context of the caller ofThread.start()when starting. Otherwise, threads will start with an empty context. If unset, the value of this option defaults to1on free-threaded builds and to0otherwise. See alsoPYTHON_THREAD_INHERIT_CONTEXT.Added in version 3.14.
-X context_aware_warnings=0,1causes thewarnings.catch_warningscontext manager to use aContextVarto store warnings filter state. If unset, the value of this option defaults to1on free-threaded builds and to0otherwise. See alsoPYTHON_CONTEXT_AWARE_WARNINGS.Added in version 3.14.
-X tlbc=0,1enables (1, the default) or disables (0) thread-local bytecode in builds configured with--disable-gil. When disabled, this also disables the specializing interpreter. See alsoPYTHON_TLBC.Added in version 3.14.
También permite pasar valores arbitrarios y recuperarlos a través del diccionario
sys._xoptions.Added in version 3.2.
Distinto en la versión 3.9: Removed the
-X showalloccountoption.Distinto en la versión 3.10: Removed the
-X oldparseroption.
Removed in version 3.14: -J is no longer reserved for use by Jython,
and now has no special meaning.
1.1.4. Controlling color¶
The Python interpreter is configured by default to use colors to highlight output in certain situations such as when displaying tracebacks. This behavior can be controlled by setting different environment variables.
Setting the environment variable TERM to dumb will disable color.
If the FORCE_COLOR environment variable is set, then color will be
enabled regardless of the value of TERM. This is useful on CI systems which
aren’t terminals but can still display ANSI escape sequences.
If the NO_COLOR environment variable is set, Python will disable all color
in the output. This takes precedence over FORCE_COLOR.
All these environment variables are used also by other tools to control color
output. To control the color output only in the Python interpreter, the
PYTHON_COLORS environment variable can be used. This variable takes
precedence over NO_COLOR, which in turn takes precedence over
FORCE_COLOR.
1.2. Variables de entorno¶
Estas variables de entorno influyen en el comportamiento de Python, se procesan antes de que los modificadores de línea de comandos distintos de -E o -I. Es habitual que los modificadores de línea de comandos anulen variables de entorno donde hay un conflicto.
- PYTHONHOME¶
Cambie la ubicación de las bibliotecas estándar de Python. De forma predeterminada, las bibliotecas se buscan en
prefix/lib/pythonversionyexec_prefix/lib/pythonversion, dondeprefixyexec_prefixson directorios dependientes de la instalación, ambos predeterminados/usr/local.Cuando
PYTHONHOMEse establece en un único directorio, su valor reemplaza tanto alprefixcomo aexec_prefix. Para especificar valores diferentes para estos, establezcaPYTHONHOMEenprefix:exec_prefix.
- PYTHONPATH¶
Aumente la ruta de búsqueda predeterminada para los archivos de módulo. El formato es el mismo que el de shell
PATH: uno o más nombres de ruta de directorio separados poros.pathsep(por ejemplo, dos puntos en Unix o punto y coma en Windows). Los directorios inexistentes se omiten silenciosamente.Además de los directorios normales, las entradas individuales
PYTHONPATHpueden referirse a archivos zip que contienen módulos Python puros (ya sea en forma de origen o compilado). Los módulos de extensión no se pueden importar desde zipfiles.La ruta de búsqueda predeterminada depende de la instalación, pero generalmente comienza con
prefix/lib/pythonversion(consultePYTHONHOMEarriba). Es always anexado aPYTHONPATH.Se insertará un directorio adicional en la ruta de búsqueda delante de
PYTHONPATHcomo se describió anteriormente en Opciones de interfaz. La ruta de búsqueda se puede manipular desde un programa Python como la variablesys.path.
- PYTHONSAFEPATH¶
Si se establece en una cadena no vacía, no anteponga una ruta potencialmente insegura a
sys.path: véase la opción-upara más información.Added in version 3.11.
- PYTHONPLATLIBDIR¶
Si se establece en una cadena no vacía, anula el valor
sys.platlibdir.Added in version 3.9.
- PYTHONSTARTUP¶
Si este es el nombre de un archivo legible, los comandos de Python de ese archivo se ejecutan antes de que el primer mensaje se muestre en modo interactivo. El archivo se ejecuta en el mismo espacio de nombres donde se ejecutan comandos interactivos para que los objetos definidos o importados en él se puedan usar sin calificación en la sesión interactiva. También puede cambiar las solicitudes
sys.ps1ysys.ps2y el enlacesys.__interactivehook__en este archivo.Lanza auditing event
cpython.run_startupcon el nombre de archivo como argumento cuando se llama al inicio.
- PYTHONOPTIMIZE¶
Si se establece en una cadena no vacía, equivale a especificar la opción
-O. Si se establece en un entero, es equivalente a especificar-Ovarias veces.
- PYTHONBREAKPOINT¶
Si se establece, nombra un nombre que se puede llamar mediante la notación de trayecto de puntos. El módulo que contiene el invocable se importará y, a continuación, el invocable se ejecutará por la implementación predeterminada de
sys.breakpointhook()que a su vez se llama por incorporadobreakpoint(). Si no se establece o se establece en la cadena vacía, es equivalente al valor «pdb.set_trace». Establecer esto en la cadena «0» hace que la implementación predeterminada desys.breakpointhook()no haga nada más que retornar inmediatamente.Added in version 3.7.
- PYTHONDEBUG¶
Si se establece en una cadena no vacía, equivale a especificar la opción
-d. Si se establece en un entero, equivale a especificar-dvarias veces.Esta variable de entorno necesita una compilación de depuración de Python, de lo contrario será ignorada.
- PYTHONINSPECT¶
Si se establece en una cadena no vacía, equivale a especificar la opción
-i.Esta variable también se puede modificar mediante código Python mediante
os.environpara forzar el modo de inspección en la terminación del programa.Lanza un evento auditing event
cpython.run_stdinsin argumentos.Distinto en la versión 3.12.5: (also 3.11.10, 3.10.15, 3.9.20, and 3.8.20) Emits audit events.
Distinto en la versión 3.13: Uses PyREPL if possible, in which case
PYTHONSTARTUPis also executed. Emits audit events.
- PYTHONVERBOSE¶
Si se establece en una cadena no vacía, equivale a especificar la opción
-v. Si se establece en un entero, equivale a especificar-vvarias veces.
- PYTHONCASEOK¶
Si se establece, Python omite mayúsculas y minúsculas en las instrucciones
import. Esto sólo funciona en Windows y macOS.
- PYTHONDONTWRITEBYTECODE¶
Si se establece en una cadena no vacía, Python no intentará escribir archivos
.pycen la importación de módulos de origen. Esto equivale a especificar la opción-B.
- PYTHONPYCACHEPREFIX¶
Si se establece, Python escribirá archivos
.pycen un árbol de directorios reflejado en esta ruta de acceso, en lugar de en directorios__pycache__dentro del árbol de origen. Esto equivale a especificar la opción-Xpycache_prefix=PATH.Added in version 3.8.
- PYTHONHASHSEED¶
Si esta variable no se establece o se establece en
random, se utiliza un valor aleatorio para sembrar los hashes de los objetos str y bytes.Si
PYTHONHASHSEEDse establece en un valor entero, se utiliza como una semilla fija para generar el hash() de los tipos cubiertos por la aleatorización hash.Su propósito es permitir el hash repetible, como para las autocomprobaciónes para el propio intérprete, o permitir que un grupo de procesos python comparta valores hash.
El entero debe ser un número decimal en el intervalo [0,4294967295]. Especificar el valor 0 deshabilitará la aleatorización de hash.
Added in version 3.2.3.
- PYTHONINTMAXSTRDIGITS¶
Si esta variable se establece en un número entero, se utiliza para configurar la limitación de longitud de conversión de cadena entera.
Added in version 3.11.
- PYTHONIOENCODING¶
Si se establece antes de ejecutar el intérprete, invalida la codificación utilizada para stdin/stdout/stderr, en la sintaxis
encodingname:errorhandler. Tanto las partesencodingnamecomo:errorhandlerson opcionales y tienen el mismo significado que enstr.encode().Para stderr, se omite la parte
:errorhandler; el manejador siempre será'backslashreplace'.Distinto en la versión 3.4: La parte
encodingnameahora es opcional.Distinto en la versión 3.6: En Windows, la codificación especificada por esta variable se omite para los búferes de consola interactivos a menos que también se especifique
PYTHONLEGACYWINDOWSSTDIO. Los archivos y canalizaciones redirigidos a través de las corrientes estándar no se ven afectados.
- PYTHONNOUSERSITE¶
Si se establece, Python no agregará
user site-packages directoryasys.path.Ver también
PEP 370 – Directorio de paquetes de sitio por usuario
- PYTHONUSERBASE¶
Define el
user base directory, que se utiliza para calcular la ruta de acceso deuser site-packages directoryy installation paths parapython -m pie install --user.Ver también
PEP 370 – Directorio de paquetes de sitio por usuario
- PYTHONEXECUTABLE¶
Si se establece esta variable de entorno,
sys.argv[0]se establecerá en su valor en lugar del valor conseguido a través del tiempo de ejecución de C. Sólo funciona en macOS.
- PYTHONWARNINGS¶
Esto es equivalente a la opción
-W. Si se establece en una cadena separada por comas, es equivalente a especificar-Wvarias veces, con filtros más adelante en la lista que tienen prioridad sobre los anteriores de la lista.La configuración más sencilla aplica una acción determinada incondicionalmente a todas las advertencias emitidas por un proceso (incluso aquellas que de otro modo se ignoran de forma predeterminada):
PYTHONWARNINGS=default # Warn once per call location PYTHONWARNINGS=error # Convert to exceptions PYTHONWARNINGS=always # Warn every time PYTHONWARNINGS=all # Same as PYTHONWARNINGS=always PYTHONWARNINGS=module # Warn once per calling module PYTHONWARNINGS=once # Warn once per Python process PYTHONWARNINGS=ignore # Never warn
Consulte El filtro de advertencias y Descripción de los filtros de advertencia para obtener más detalles.
- PYTHONFAULTHANDLER¶
If this environment variable is set to a non-empty string,
faulthandler.enable()is called at startup: install a handler forSIGSEGV,SIGFPE,SIGABRT,SIGBUSandSIGILLsignals to dump the Python traceback. This is equivalent to-Xfaulthandleroption.Added in version 3.3.
- PYTHONTRACEMALLOC¶
Si esta variable de entorno se establece en una cadena no vacía, comience a trazar las asignaciones de memoria de Python mediante el módulo
tracemalloc. El valor de la variable es el número máximo de marcos almacenados en un rastreo de un seguimiento. Por ejemplo,PYTHONTRACEMALLOC=1almacena sólo el marco más reciente. Consulte la funcióntracemalloc.start()para obtener más información. Esto equivale a configurar la opción-Xtracemalloc.Added in version 3.4.
- PYTHONPROFILEIMPORTTIME¶
If this environment variable is set to
1, Python will show how long each import takes. If set to2, Python will include output for imported modules that have already been loaded. This is equivalent to setting the-Ximporttimeoption.Added in version 3.7.
Distinto en la versión 3.14: Added
PYTHONPROFILEIMPORTTIME=2to also trace imports of loaded modules.
- PYTHONASYNCIODEBUG¶
Si esta variable de entorno se establece en una cadena no vacía, habilite el modo debug mode del módulo
asyncio.Added in version 3.4.
- PYTHONMALLOC¶
Establezca los asignadores de memoria de Python y/o instale enlaces de depuración.
Establezca la familia de asignadores de memoria utilizados por Python:
default: utilice default memory allocators.malloc: utilice la funciónmalloc()de la biblioteca C para todos los dominios (PYMEM_DOMAIN_RAW,PYMEM_DOMAIN_MEM,PYMEM_DOMAIN_OBJ).pymalloc: utilice el pymalloc allocator paraPYMEM_DOMAIN_MEMy dominiosPYMEM_DOMAIN_OBJy utilice la funciónmalloc()para el dominioPYMEM_DOMAIN_RAW.mimalloc: use the mimalloc allocator forPYMEM_DOMAIN_MEMandPYMEM_DOMAIN_OBJdomains and use themalloc()function for thePYMEM_DOMAIN_RAWdomain.
Instalar enlaces de depuración:
debug: instale los enlaces de depuración encima de default memory allocators.malloc_debug: igual quemallocpero también instalar ganchos de depuración.pymalloc_debug: igual quepymallocpero también instalar enlaces de depuración.mimalloc_debug: same asmimallocbut also install debug hooks.
Added in version 3.6.
Distinto en la versión 3.7: Se ha añadido el asignador
"predeterminado".
- PYTHONMALLOCSTATS¶
Si se establece en una cadena no vacía, Python imprimirá estadísticas de pymalloc memory allocator cada vez que se crea una nueva arena de objetos pymalloc y al apagarse.
Esta variable se omite si la variable de entorno
PYTHONMALLOCse utiliza para forzar el asignadormalloc()de la biblioteca C, o si Python está configurado sin compatibilidad conpymalloc.Distinto en la versión 3.6: Esta variable ahora también se puede utilizar en Python compilado en modo de versión. Ahora no tiene ningún efecto si se establece en una cadena vacía.
- PYTHONLEGACYWINDOWSFSENCODING¶
Si se establece en una cadena no vacía, el filesystem encoding and error handler predeterminado volverá a sus valores pre-3.6 de mbcs y replace, respectivamente. De lo contrario, se utilizan los nuevos valores predeterminados “utf-8” y “surrogatepass”.
This may also be enabled at runtime with
sys._enablelegacywindowsfsencoding().Availability: Windows.
Added in version 3.6: Consulte PEP 529 para obtener más detalles.
- PYTHONLEGACYWINDOWSSTDIO¶
Si se establece en una cadena no vacía, no utiliza el nuevo lector y escritor de consola. Esto significa que los caracteres Unicode se codificarán de acuerdo con la página de códigos de la consola activa, en lugar de usar utf-8.
Esta variable se omite si se redirigen las secuencias estándar (a archivos o canalizaciones) en lugar de hacer referencia a búferes de consola.
Availability: Windows.
Added in version 3.6.
- PYTHONCOERCECLOCALE¶
Si se establece en el valor
0, hace que la aplicación principal de línea de comandos de Python omita la coerción de las configuraciones regionales C y POSIX basadas en ASCII heredadas a una alternativa basada en UTF-8 más capaz.Si esta variable es no establecida (o se establece en un valor distinto de
0), tampoco se establece la variable de entorno de invalidación localLC_ALL, y la configuración local actual notificada para la categoríaLC_CTYPEes la configuración localCpredeterminada, o bien la configuración local basada explícitamente en ASCIIPOSIX, entonces la CLI de Python intentará configurar las siguientes configuraciones locales para la categoríaLC_CTYPEen el orden indicado antes de cargar el tiempo de ejecución del intérprete:C.UTF-8C.utf8UTF-8
Si la configuración de una de estas categorías de configuración local se realiza correctamente, la variable de entorno
LC_CTYPEtambién se establecerá en consecuencia en el entorno de proceso actual antes de que se inicialice el tiempo de ejecución de Python. Esto garantiza que, además de ser visto tanto por el propio intérprete como por otros componentes compatibles con la configuración local que se ejecutan en el mismo proceso (como la biblioteca GNUreadline), la configuración actualizada también se ve en los subprocesos (independientemente de si esos procesos están ejecutando o no un intérprete de Python), así como en las operaciones que consultan el entorno en lugar de la configuración regional de C actual (como la propia de Pythonlocale.getdefaultlocale()).La configuración de una de estas configuraciones regionales (ya sea explícitamente o a través de la coerción de configuración regional implícita anterior) habilita automáticamente el
surrogateescapeerror handler parasys.stdinysys.stdout(sys.stderrcontinúa utilizandobackslashreplacecomo lo hace en cualquier otra configuración local). Este comportamiento de control de secuencias se puede invalidar mediantePYTHONIOENCODINGcomo de costumbre.Para fines de depuración, establecer
PYTHONCOERCECLOCALE-warnhará que Python emita mensajes de advertencia enstderrsi se activa la coerción de configuración regional, o si una configuración regional que would ha activado la coerción sigue activa cuando se inicializa el tiempo de ejecución de Python.También tenga en cuenta que incluso cuando la coerción de configuración regional está desactivada, o cuando no puede encontrar una configuración regional de destino adecuada,
PYTHONUTF8se activará de forma predeterminada en las configuraciones regionales heredadas basadas en ASCII. Ambas funciones deben estar deshabilitadas para obligar al intérprete a usarASCIIen lugar deUTF-8para las interfaces del sistema.Availability: Unix.
Added in version 3.7: Consulte PEP 538 para obtener más detalles.
- PYTHONDEVMODE¶
Si esta variable de entorno se establece en una cadena no vacía, habilite Python Development Mode, introduciendo comprobaciones de tiempo de ejecución adicionales que son demasiado caras para habilitarse de forma predeterminada. Esto equivale a configurar la opción
-Xdev.Added in version 3.7.
- PYTHONUTF8¶
Si se establece en
1, habilita el modo Python UTF-8.Si se establece en
0, deshabilita el modo Python UTF-8.Establecer cualquier otra cadena no vacía produce un error durante la inicialización del intérprete.
Added in version 3.7.
- PYTHONWARNDEFAULTENCODING¶
Si esta variable de entorno se establece como una cadena de caracteres no vacía, emite un
EncodingWarningcuando se utilice la codificación predeterminada específica de la configuración regional.Ver EncodingWarning opcional para más detalles.
Added in version 3.10.
- PYTHONNODEBUGRANGES¶
Si se establece esta variable, deshabilita la inclusión de tablas que asignan información de ubicación adicional (línea final, desplazamiento de columna inicial y desplazamiento de columna final) a cada instrucción en los objetos de código. Esto es útil cuando se desean objetos de código más pequeños y archivos pyc, además de suprimir los indicadores de ubicación visuales adicionales cuando el intérprete muestra rastreos.
Added in version 3.11.
- PYTHONPERFSUPPORT¶
Si esta variable se establece en un valor distinto de cero, habilita la compatibilidad con el perfilador
perfde Linux para que pueda detectar las llamadas de Python.Si se establece en
0, deshabilite la compatibilidad con el generador de perfilesperfde Linux.Consulte también la opción de línea de comandos
-X perfy Soporte de Python para el perfilador perf de Linux.Added in version 3.12.
- PYTHON_PERF_JIT_SUPPORT¶
If this variable is set to a nonzero value, it enables support for the Linux
perfprofiler so Python calls can be detected by it using DWARF information.Si se establece en
0, deshabilite la compatibilidad con el generador de perfilesperfde Linux.See also the
-X perf_jitcommand-line option and Soporte de Python para el perfilador perf de Linux.Added in version 3.13.
- PYTHON_DISABLE_REMOTE_DEBUG¶
If this variable is set to a non-empty string, it disables the remote debugging feature described in PEP 768. This includes both the functionality to schedule code for execution in another process and the functionality to receive code for execution in the current process.
See also the
-X disable_remote_debugcommand-line option.Added in version 3.14.
- PYTHON_CPU_COUNT¶
If this variable is set to a positive integer, it overrides the return values of
os.cpu_count()andos.process_cpu_count().See also the
-X cpu_countcommand-line option.Added in version 3.13.
- PYTHON_FROZEN_MODULES¶
If this variable is set to
onoroff, it determines whether or not frozen modules are ignored by the import machinery. A value ofonmeans they get imported andoffmeans they are ignored. The default isonfor non-debug builds (the normal case) andofffor debug builds. Note that theimportlib_bootstrapandimportlib_bootstrap_externalfrozen modules are always used, even if this flag is set tooff.See also the
-X frozen_modulescommand-line option.Added in version 3.13.
- PYTHON_COLORS¶
If this variable is set to
1, the interpreter will colorize various kinds of output. Setting it to0deactivates this behavior. See also Controlling color.Added in version 3.13.
- PYTHON_BASIC_REPL¶
If this variable is set to any value, the interpreter will not attempt to load the Python-based REPL that requires
readline, and will instead use the traditional parser-based REPL.Added in version 3.13.
- PYTHON_HISTORY¶
This environment variable can be used to set the location of a
.python_historyfile (by default, it is.python_historyin the user’s home directory).Added in version 3.13.
- PYTHON_GIL¶
If this variable is set to
1, the global interpreter lock (GIL) will be forced on. Setting it to0forces the GIL off (needs Python configured with the--disable-gilbuild option).See also the
-X gilcommand-line option, which takes precedence over this variable, and Free-threaded CPython.Added in version 3.13.
- PYTHON_THREAD_INHERIT_CONTEXT¶
If this variable is set to
1thenThreadwill, by default, use a copy of context of the caller ofThread.start()when starting. Otherwise, new threads will start with an empty context. If unset, this variable defaults to1on free-threaded builds and to0otherwise. See also-X thread_inherit_context.Added in version 3.14.
- PYTHON_CONTEXT_AWARE_WARNINGS¶
If set to
1then thewarnings.catch_warningscontext manager will use aContextVarto store warnings filter state. If unset, this variable defaults to1on free-threaded builds and to0otherwise. See-X context_aware_warnings.Added in version 3.14.
- PYTHON_JIT¶
On builds where experimental just-in-time compilation is available, this variable can force the JIT to be disabled (
0) or enabled (1) at interpreter startup.Added in version 3.13.
- PYTHON_TLBC¶
If set to
1enables thread-local bytecode. If set to0thread-local bytecode and the specializing interpreter are disabled. Only applies to builds configured with--disable-gil.See also the
-X tlbccommand-line option.Added in version 3.14.
1.2.1. Variables de modo de depuración¶
- PYTHONDUMPREFS¶
Si se establece, Python volcará objetos y recuentos de referencias aún vivos después de apagar el intérprete.
Needs Python configured with the
--with-trace-refsbuild option.
- PYTHONDUMPREFSFILE¶
If set, Python will dump objects and reference counts still alive after shutting down the interpreter into a file under the path given as the value to this environment variable.
Needs Python configured with the
--with-trace-refsbuild option.Added in version 3.11.
- PYTHON_PRESITE¶
If this variable is set to a module, that module will be imported early in the interpreter lifecycle, before the
sitemodule is executed, and before the__main__module is created. Therefore, the imported module is not treated as__main__.This can be used to execute code early during Python initialization.
To import a submodule, use
package.moduleas the value, like in an import statement.See also the
-X presitecommand-line option, which takes precedence over this variable.Needs Python configured with the
--with-pydebugbuild option.Added in version 3.13.