sys --- System-specific parameters and functions¶
This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter. It is always available. Unless explicitly noted otherwise, all variables are read-only.
- sys.abi_info¶
Ajouté dans la version 3.15.
An object containing information about the ABI of the currently running Python interpreter. It should include information that affect the CPython ABI in ways that require a specific build of the interpreter chosen from variants that can co-exist on a single machine. For example, it does not encode the base OS (Linux or Windows), but does include pointer size since some systems support both 32- and 64-bit builds. The available entries are the same on all platforms; e.g. pointer_size is available even on 64-bit-only architectures.
The following attributes are available:
- abi_info.pointer_bits¶
The width of pointers in bits, as an integer, equivalent to
8 * sizeof(void *). Usually, this is32or64.
- abi_info.free_threaded¶
A Boolean indicating whether the interpreter was built with free threading support. This reflects either the presence of the
--disable-gilconfigureoption (on Unix) or setting theDisableGilproperty (on Windows).
- abi_info.debug¶
A Boolean indicating whether the interpreter was built in debug mode. This reflects either the presence of the
--with-pydebugconfigureoption (on Unix) or theDebugconfiguration (on Windows).
- sys.abiflags¶
Contient, sur les systèmes POSIX où Python a été compilé avec le script
configure, les ABI flags tels que définis par la PEP 3149.Ajouté dans la version 3.2.
Modifié dans la version 3.8: Les options par défaut sont devenues des chaines de caractères vides (l'option
mpour pymalloc a été enlevée).Disponibilité: Unix.
- sys.addaudithook(hook)¶
Append the callable hook to the list of active auditing hooks for the current (sub)interpreter.
Quand un événement d'audit est déclenché par la fonction
sys.audit(), chaque point d'entrée est appelé dans l'ordre dans lequel il a été ajouté avec le nom de l'événement et le n-uplet des arguments. Les points d'entrées qui sont ajoutés parPySys_AddAuditHook()sont appelés les premiers, suivi par les fonctions de rappel ajoutées dans l'interpréteur en cours d'exécution. Les points d'entrées peuvent logger l'événement, lever une exception pour stopper l'opération ou terminer le processus entièrement.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.L'appel de
sys.addaudithook()lèvera d'elle même un événement d'audit appelésys.addaudithooksans arguments. Si n'importe quel hook lève une exception dérivée deRuntimeError, le nouveau point d'entrée ne sera pas ajouté et l'exception supprimée. Par conséquent, les appels ne peuvent pas supposer que leurs points d'entrées ont été ajoutés à moins de contrôler tous les points d'entrées existants.Voir la table d'évenements d'audit pour tous les événements levés par CPython et PEP 578 pour la discussion originale de ce design.
Ajouté dans la version 3.8.
Modifié dans la version 3.8.1: Les exceptions dérivées de
Exceptionmais pasRuntimeErrorne sont plus supprimées.Quand le traçage est activé (voir
settrace()), les hooks Python ne sont tracés que si la fonction a un membre__cantrace__dont la valeur est vraie. Autrement, les fonctions de traçage ignorent le hook.
- sys.argv¶
La liste des arguments de la ligne de commande passés à un script Python.
argv[0]est le nom du script (chemin complet, ou non, en fonction du système d'exploitation). Si la commande a été exécutée avec l'option-cde l'interpréteur,argv[0]vaut la chaîne'-c'. Si aucun nom de script n'a été donné à l'interpréteur Python,argv[0]sera une chaîne vide.Pour boucler sur l'entrée standard, ou la liste des fichiers donnés sur la ligne de commande, utilisez le module
fileinput.See also
sys.orig_argv.Note
Sous Unix, les arguments de ligne de commande sont passés par des octets depuis le système d'exploitation. Python les décode en utilisant l’encodage du système de fichiers et le gestionnaire d’erreur surrogateescape. Quand vous avez besoin des octets originaux, vous pouvez les récupérer avec
[os.fsencode(arg) for arg in sys.argv].
- sys.audit(event, *args)¶
Déclenche un événement d'audit pour tous les points d'entrées d'audit actifs. event est une chaîne de caractères identifiant l'événement, et args peut contenir des arguments optionnels avec plus d'informations sur l'événement en question. Le nombre et types d'arguments pour un événement donné sont considérés comme une API publique et stable, et ne devraient pas être modifiés entre les versions.
Par exemple, un événement d'audit est nommé
os.chdir. Cet événement à un argument appelé path qui contiendras le nouveau répertoire de travail.sys.audit()appellera les point d'entrées (hooks en anglais) d'audits existants, en passant le nom de l'événement et ses arguments, et lèvera à nouveau la première exception de n'importe quel point d'entrée. En général, si une exception est levée, elle ne devrais pas être gérée et le processus devrait être terminé aussi rapidement que possible. Cela permet que les implémentations des points d'entrées décident comment répondre à des événements particuliers : Ils peuvent simplement logger l'événement ou arrêter l'opération en levant une exception.Les points d'entrées sont ajoutés en utilisant les fonctions
sys.addaudithook()ouPySys_AddAuditHook().L'équivalent natif de cette fonction est
PySys_Audit(). L'utilisation de la fonction native est encouragée lorsque c'est possible.Voir le tableau d'événements d'audit pour tous les événements levés par CPython.
Ajouté dans la version 3.8.
- sys.base_exec_prefix¶
Equivalent to
exec_prefix, but referring to the base Python installation.When running under Virtual Environments,
exec_prefixgets overwritten to the virtual environment prefix.base_exec_prefix, conversely, does not change, and always points to the base Python installation. Refer to Virtual Environments for more information.Ajouté dans la version 3.3.
- sys.base_prefix¶
Equivalent to
prefix, but referring to the base Python installation.When running under virtual environment,
prefixgets overwritten to the virtual environment prefix.base_prefix, conversely, does not change, and always points to the base Python installation. Refer to Virtual Environments for more information.Ajouté dans la version 3.3.
- sys.byteorder¶
Un indicateur de l'ordre natif des octets. Vaudra
'big'sur les plateformes gros-boutistes (octet le plus significatif en premier), et'little'sur les plateformes petit-boutiste (octet le moins significatif en premier).
- sys.builtin_module_names¶
A tuple of strings containing the names of all modules that are compiled into this Python interpreter. (This information is not available in any other way ---
modules.keys()only lists the imported modules.)See also the
sys.stdlib_module_nameslist.
- 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¶
Une chaîne contenant le copyright relatif à l'interpréteur Python.
- sys._clear_type_cache()¶
Vide le cache interne de types. Le cache de types est utilisé pour accélérer les recherches d'attributs et de méthodes. N'utilisez cette fonction que pour libérer des références inutiles durant le débogage de fuite de référence.
Cette fonction ne devrait être utilisée que pour un usage interne et spécialisé.
Obsolète depuis la version 3.13: Use the more general
_clear_internal_caches()function instead.
- sys._clear_internal_caches()¶
Clear all internal performance-related caches. Use this function only to release unnecessary references and memory blocks when hunting for leaks.
Ajouté dans la version 3.13.
- sys._current_frames()¶
Renvoie un dictionnaire faisant correspondre chaque identifiant de fil d'exécution à la stack frame actuellement active pour ces fils d'exécution au moment où la fonction est appelée. Notez que les fonctions du module
tracebackpeuvent construire une call stack à partir d'une telle frame.N'ayant pas besoin de la coopération des fils d'exécution bloqués, cette fonction est très utile pour déboguer un deadlock. Aussi, les call stack de ces fils d'exécution ne changeront pas tant qu'ils seront bloqués. La frame renvoyée pour un fil d'exécution non bloqué peut ne plus être liée à l'activité courante du fil d'exécution au moment où le code appelant examine la frame.
Cette fonction ne devrait être utilisée que pour un usage interne et spécialisé.
Lève un événement d'audit
sys._current_framessans arguments.
- sys._current_exceptions()¶
Return a dictionary mapping each thread's identifier to the topmost exception currently active in that thread at the time the function is called. If a thread is not currently handling an exception, it is not included in the result dictionary.
This is most useful for statistical profiling.
Cette fonction ne devrait être utilisée que pour un usage interne et spécialisé.
Raises an auditing event
sys._current_exceptionswith no arguments.Modifié dans la version 3.12: Each value in the dictionary is now a single exception instance, rather than a 3-tuple as returned from
sys.exc_info().
- sys.breakpointhook()¶
Cette fonction auto-déclenchée (hook function en anglais) est appelée par la fonction native
breakpoint(). Par défaut, elle vous place dans le débogueurpdb, mais elle peut être dirigée vers n'importe quelle autre fonction pour que vous puissiez choisir le débogueur utilisé.La signature de cette fonction dépend de ce qu'elle appelle. Par exemple, l'appel par défaut (e.g.
pdb.set_trace()) n'attend pas d'argument, mais vous pourriez la lier à une fonction qui attend des arguments supplémentaires (positionnels et/ou mots-clés). La fonction nativebreakpoint()passe ses*argset**kwsdirectement au travers. Tout ce que renvoiebreakpointhooks()est renvoyé parbreakpoint().L'implémentation par défaut consulte d'abord la variable d'environnement
PYTHONBREAKPOINT. Si elle vaut"0"alors cette fonction s'achève immédiatement (elle ne fait donc rien). Si la variable d'environnement n'est pas définie, ou s'il s'agit d'une chaîne vide,pdb.set_trace()est appelée. Sinon cette variable doit nommer une fonction à appeler, en utilisant la syntaxe d'importation de Python, par exemplepackage.subpackage.module.function. Dans ce cas,package.subpackage.modulesera importé et le module devra contenir une fonction appelablefunction(). Celle-ci est lancée en lui passant*argset*kwset, quoique renvoiefunction(),sys.breakpointhook()retourne à la fonction nativebreakpoint().Notez que si un problème apparaît au moment de l'importation de la fonction nommée dans
PYTHONBREAKPOINT, une alerteRuntimeWarningest indiquée et le point d'arrêt est ignoré.Notez également que si
sys.breakpointhook()est surchargé de manière programmatique,PYTHONBREAKPOINTn'est pas consulté.Ajouté dans la version 3.7.
- sys._debugmallocstats()¶
Affiche des informations bas-niveau sur la sortie d'erreur à propos de l'état de l'allocateur de mémoire de CPython.
If Python is built in debug mode (
configure --with-pydebug option), it also performs some expensive internal consistency checks.Ajouté dans la version 3.3.
Cette fonction est spécifique à CPython. Le format de sa sortie n'est pas définit ici et pourrait changer.
- sys.dllhandle¶
Nombre entier spécifiant le descripteur de la DLL Python.
Disponibilité: Windows.
- sys.displayhook(value)¶
Si value n'est pas
None, cette fonction écritrepr(value)sursys.stdout, et sauvegarde value dansbuiltins._. Sirepr(value)ne peut pas être encodé avecsys.stdout.encodingen utilisant le gestionnaire d'erreursys.stdout.errors(qui est probablement'strict'), elle sera encodée avecsys.stdout.encodingen utilisant le gestionnaire d'erreur'backslashreplace'.sys.displayhookest appelé avec le résultat de l'évaluation d'une expression entrée dans une session Python interactive. L'affichage de ces valeurs peut être personnalisé en assignant une autre fonction d'un argument àsys.displayhook.Pseudo-code :
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
Modifié dans la version 3.2: Utiliser le gestionnaire d'erreur
'backslashreplace'en cas d'UnicodeEncodeError.
- sys.dont_write_bytecode¶
Si vrai, Python n'essaiera pas d'écrire de fichiers
.pycà l'importation de modules source. Cette valeur est initialement définie àTrueouFalseen fonction de l'option de la ligne de commande-Bet de la variable d'environnementPYTHONDONDONTWRITEBYTECODE, mais vous pouvez aussi la modifier vous-même pour contrôler la génération des fichiers de bytecode.
- 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¶
Emscripten version as tuple of ints (major, minor, micro), e.g.
(3, 1, 8).
- _emscripten_info.runtime¶
Runtime string, e.g. browser user agent,
'Node.js v14.18.2', or'UNKNOWN'.
- _emscripten_info.pthreads¶
Trueif Python is compiled with Emscripten pthreads support.
Trueif Python is compiled with shared memory support.
Disponibilité: Emscripten.
Ajouté dans la version 3.11.
- sys.pycache_prefix¶
If this is set (not
None), Python will write bytecode-cache.pycfiles 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.pycfiles written within the pycache prefix. Thus if you usecompileallas a pre-build step, you must ensure you run it with the same pycache prefix (if any) that you will use at runtime.Un chemin relatif est interprété relativement au répertoire courant.
Cette valeur est initialement définie basée sur la valeur de l'option de ligne de commande
-Xpycache_prefix=PATHou la variable d'environnementPYTHONPYCACHEPREFIX(La ligne de commande est prioritaire). Si aucune des deux options n'est définie, alors la valeur estNone.Ajouté dans la version 3.8.
- sys.excepthook(type, value, traceback)¶
Cette fonction affiche la traceback et l'exception donnée sur
sys.stderr.When an exception other than
SystemExitis raised and uncaught, the interpreter callssys.excepthookwith 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.Lève un événement d'audit
sys.excepthookavec les argumentshook,type,value,tracebacklorsqu'une exception non interceptée se produit. Si aucun point d'entrée n'a été défini,hookpeut êtreNone. Si n'importe quel point d'entrée lève une exception dérivée deRuntimeError, l'appel au point d'entrée sera supprimé. Autrement, l'exception du point d'entrée d'audit sera reporté comme non levable (unraisable en anglais) etsys.excepthooksera appelé.Voir aussi
La fonction
sys.unraisablehook()gère les exceptions non-levables et la fonctionthreading.excepthook()gère les exceptions levées parthreading.Thread.run().
- sys.__breakpointhook__¶
- sys.__displayhook__¶
- sys.__excepthook__¶
- sys.__unraisablehook__¶
Ces objets contiennent les valeurs originales de
breakpointhook,displayhook,excepthooketunraisablehookau début du programme.Ils sont sauvegardés de façon à ce quebreakpointhook,displayhook,excepthooketunraisablehookpuissent être restaurés au cas où ils seraient remplacés par des objets cassés ou alternatifs.Ajouté dans la version 3.7:
__breakpointhook__Ajouté dans la version 3.8:
__unraisablehook__
- sys.exception()¶
This function, when called while an exception handler is executing (such as an
exceptorexcept*clause), returns the exception instance that was caught by this handler. When exception handlers are nested within one another, only the exception handled by the innermost handler is accessible.If no exception handler is executing, this function returns
None.Ajouté dans la version 3.11.
- sys.exc_info()¶
This function returns the old-style representation of the handled exception. If an exception
eis currently handled (soexception()would returne),exc_info()returns the tuple(type(e), e, e.__traceback__). That is, a tuple containing the type of the exception (a subclass ofBaseException), the exception itself, and a traceback object which typically encapsulates the call stack at the point where the exception last occurred.If no exception is being handled anywhere on the stack, this function return a tuple containing three
Nonevalues.Modifié dans la version 3.11: The
typeandtracebackfields are now derived from thevalue(the exception instance), so when an exception is modified while it is being handled, the changes are reflected in the results of subsequent calls toexc_info().
- sys.exec_prefix¶
Une chaîne donnant le préfixe de dossier spécifique au site où les fichiers dépendant de la plateforme sont installés. Par défaut, c'est
'/usr/local'. C'est configurable à la compilation avec l'option--exec-prefixdu script configure. Tous les fichiers de configurations (tel quepyconfig,h) sont installés dans le dossierexec_prefix/lib/pythonX.Y/config, et les modules sous forme de bibliothèques partagées sont installés dansexec_prefix/lib/pythonX.Y/lib-dynload, où X.Y est le numéro de version de Python, par exemple3.2.Note
If a virtual environment is in effect, this
exec_prefixwill point to the virtual environment. The value for the Python installation will still be available, viabase_exec_prefix. Refer to Virtual Environments for more information.Modifié dans la version 3.14: When running under a virtual environment,
prefixandexec_prefixare now set to the virtual environment prefix by the path initialization, instead ofsite. This means thatprefixandexec_prefixalways point to the virtual environment, even whensiteis disabled (-S).
- sys.executable¶
Une chaîne donnant le chemin absolu vers l'interpréteur Python, un fichier binaire exécutable, sur les système sur lesquels ça à du sens. Si Python n'est pas capable de récupérer le chemin réel de son exécutable,
sys.executablesera une chaîne vide ouNone.
- sys.exit([arg])¶
Raise a
SystemExitexception, signaling an intention to exit the interpreter.L'argument optionnel arg peut être un nombre entier donnant l'état de sortie (zéro par défaut), ou un autre type d'objet. Pour les shells (et autres), si c'est un entier, zéro signifie "terminé avec succès", et toutes les autres valeurs signifient "terminé anormalement". La plupart des systèmes imposent qu'il se situe dans la plage 0--127, et leur comportement n'est pas défini pour les autres cas. Certains systèmes peu communs ont pour convention d'assigner un sens particulier à des valeur spécifiques. Les programmes Unix utilisent généralement 2 pour les erreurs de syntaxe dans les arguments de la ligne de commande, et 1 pour toutes les autres erreurs. Si un autre type est passé,
Noneest équivalent à zéro, et tout autre objet est écrit surstderret donne un code de sortie 1. Typiquement,sys.exit("some error message")est un moyen rapide de quitter un programme en cas d'erreur.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 byfinallyclauses oftrystatements are honored, and it is possible to intercept the exit attempt at an outer level.Modifié dans la version 3.6: Si une erreur survient lors du nettoyage après que l'interpréteur Python ait intercepté un
SystemExit(typiquement une erreur en vidant les tampons des sorties standard), le code de sortie est changé à 120.
- sys.flags¶
The named tuple flags exposes the status of command line flags. Flags should only be accessed only by name and not by index. The attributes are read only.
- 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¶
- flags.gil¶
-X gilandPYTHON_GIL- flags.thread_inherit_context¶
- flags.context_aware_warnings¶
Modifié dans la version 3.2: Ajout de l'attribut
quietpour la nouvelle option-q.Ajouté dans la version 3.2.3: L'attribut
hash_randomization.Modifié dans la version 3.3: Suppression de l'attribut obsolète
division_warning.Modifié dans la version 3.4: Ajout de l'attribut
isolatedpour l'option-Iisolated.Modifié dans la version 3.7: Ajout de l'attribut
dev_modepour le nouveau Mode Développeur Python et l'attribututf8_modepour la nouvelle option-Xutf8.Modifié dans la version 3.10: Added
warn_default_encodingattribute for-Xwarn_default_encodingflag.Modifié dans la version 3.11: Added the
safe_pathattribute for-Poption.Modifié dans la version 3.11: Added the
int_max_str_digitsattribute.Modifié dans la version 3.13: Added the
gilattribute.Modifié dans la version 3.14: Added the
thread_inherit_contextattribute.Modifié dans la version 3.14: Added the
context_aware_warningsattribute.
- sys.float_info¶
Un named tuple contenant des informations à propos du type float. Il contient des informations de bas niveau à propos de la précision et de la représentation interne. Les valeurs correspondent aux différentes constantes à propos des nombres à virgule flottantes définies dans le fichier d'entête
float.hpour le langage de programmation C. Voir la section 5.2.4.2.2 de 1999 ISO/IEC C standard [C99], Characteristics of floating types, pour plus de détails.Attributes of the float_infonamed tuple¶attribut
macro float.h
explication
- float_info.epsilon¶
DBL_EPSILONdifference between 1.0 and the least value greater than 1.0 that is representable as a float.
Voir aussi :
math.ulp().- float_info.dig¶
DBL_DIGThe maximum number of decimal digits that can be faithfully represented in a float; see below.
- float_info.mant_dig¶
DBL_MANT_DIGFloat precision: the number of base-
radixdigits in the significand of a float.- float_info.max¶
DBL_MAXThe maximum representable positive finite float.
- float_info.max_exp¶
DBL_MAX_EXPThe maximum integer e such that
radix**(e-1)is a representable finite float.- float_info.max_10_exp¶
DBL_MAX_10_EXPThe maximum integer e such that
10**eis in the range of representable finite floats.- float_info.min¶
DBL_MINThe minimum representable positive normalized float.
Utilisez
math.ulp(0.0)pour obtenir le plus petit nombre a virgule positif dénormalisé représentable.- float_info.min_exp¶
DBL_MIN_EXPThe minimum integer e such that
radix**(e-1)is a normalized float.- float_info.min_10_exp¶
DBL_MIN_10_EXPThe minimum integer e such that
10**eis a normalized float.- float_info.radix¶
FLT_RADIXThe radix of exponent representation.
- float_info.rounds¶
FLT_ROUNDSAn integer representing the rounding mode for floating-point arithmetic. This reflects the value of the system
FLT_ROUNDSmacro at interpreter startup time:-1: indeterminable0: toward zero1: to nearest2: toward positive infinity3: toward negative infinity
All other values for
FLT_ROUNDScharacterize implementation-defined rounding behavior.The attribute
sys.float_info.digneeds further explanation. Ifsis any string representing a decimal number with at mostsys.float_info.digsignificant digits, then convertingsto 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'
Cependant, pour les chaînes avec plus de
sys.float_info.digchiffres significatifs, ce n'est pas toujours vrai :>>> s = '9876543211234567' # 16 significant digits is too many! >>> format(float(s), '.16g') # conversion changes value '9876543211234568'
- sys.float_repr_style¶
Une chaîne indiquant comment la fonction
repr()se comporte avec les nombres à virgule flottante. Si la chaîne a la valeur'short', alors pour un float finitx,repr(x)essaye de donner une courte chaîne tel quefloat(repr(x)) == x. C'est le comportement typique à partir de Python 3.1. Autrement,float_repr_stylea la valeur'legacy'etrepr(x)se comporte comme les versions antérieures à 3.1.Ajouté dans la version 3.1.
- sys.getallocatedblocks()¶
Return the number of memory blocks currently allocated by the interpreter, regardless of their size. This function is mainly useful for tracking and debugging memory leaks. Because of the interpreter's internal caches, the result can vary from call to call; you may have to call
_clear_internal_caches()andgc.collect()to get more predictable results.If a Python build or implementation cannot reasonably compute this information,
getallocatedblocks()is allowed to return 0 instead.Ajouté dans la version 3.4.
- sys.getunicodeinternedsize()¶
Return the number of unicode objects that have been interned.
Ajouté dans la version 3.12.
- sys.getandroidapilevel()¶
Return the build-time API level of Android as an integer. This represents the minimum version of Android this build of Python can run on. For runtime version information, see
platform.android_ver().Disponibilité: Android.
Ajouté dans la version 3.7.
- sys.getdefaultencoding()¶
Return
'utf-8'. This is the name of the default string encoding, used in methods likestr.encode().
- 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 theosmodule (RTLD_xxxconstants, e.g.os.RTLD_LAZY).Disponibilité: 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().For best compatibility, str should be used for filenames in all cases, although representing filenames as bytes is also supported. Functions accepting or returning filenames should support either str or bytes and internally convert to the system's preferred representation.
Les fonctions
os.fsencode()etos.fsdecode()devraient être utilisées pour s'assurer qu'un encodage et un gestionnaire d'erreurs correct sont utilisés.L'encodage du système de fichiers et gestionnaire d'erreurs associé sont configurés au démarrage de Python par la fonction
PyConfig_Read(): regardezfilesystem_encodingetfilesystem_errorsdans les membres dePyConfig.Modifié dans la version 3.2:
getfilesystemencoding()ne peut plus renvoyerNone.Modifié dans la version 3.6: Sur Windows, on est plus assurés d'obtenir
'mbcs'. Voir la PEP 529 et_enablelegacywindowsfsencoding()pour plus d'informations.Modifié dans la version 3.7: Return
'utf-8'if the Python UTF-8 Mode is enabled.
- sys.getfilesystemencodeerrors()¶
Get the filesystem error handler: the error handler used with the filesystem encoding to convert between Unicode filenames and bytes filenames. The filesystem encoding is returned from
getfilesystemencoding().Les fonctions
os.fsencode()etos.fsdecode()devraient être utilisées pour s'assurer qu'un encodage et un gestionnaire d'erreurs correct sont utilisés.L'encodage du système de fichiers et gestionnaire d'erreurs associé sont configurés au démarrage de Python par la fonction
PyConfig_Read(): regardezfilesystem_encodingetfilesystem_errorsdans les membres dePyConfig.Ajouté dans la version 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().Ajouté dans la version 3.11.
- sys.getrefcount(object)¶
Donne le nombre de référence de l'objet object. Le nombre renvoyé est généralement d'une référence de plus qu'attendu, puisqu'il compte la référence (temporaire) de l'argument à
getrefcount().Note that the returned value may not actually reflect how many references to the object are actually held. For example, some objects are immortal and have a very high refcount that does not reflect the actual number of references. Consequently, do not rely on the returned value to be accurate, other than a value of 0 or 1.
Particularité de l'implémentation CPython : Immortal objects with a large reference count can be identified via
_is_immortal().Modifié dans la version 3.12: Immortal objects have very large refcounts that do not match the actual number of references to the object.
- sys.getrecursionlimit()¶
Donne la limite actuelle de la limite de récursion, la profondeur maximum de la pile de l'interpréteur. Cette limite empêche Python de planter lors d'une récursion infinie à cause d'un débordement de la pile. Elle peut être modifiée par
setrecursionlimit().
- sys.getsizeof(object[, default])¶
Donne la taille d'un objet en octets. L'objet peut être de n'importe quel type. Le résultat sera correct pour tous les objets natifs, mais le résultat peut ne pas être toujours vrai pour les extensions, la valeur étant dépendante de l'implémentation.
Seule la mémoire directement attribuée à l'objet est prise en compte, pas la mémoire consommée par les objets vers lesquels il a des références.
S'il est fourni, default sera renvoyé si l'objet ne fournit aucun moyen de récupérer sa taille. Sinon, une exception
TypeErrorsera levée.getsizeof()appelle la méthode__sizeof__de l'objet, et s'il est géré par lui, ajoute le surcoût du ramasse-miettes.See recursive sizeof recipe for an example of using
getsizeof()recursively to find the size of containers and all their contents.
- sys.getswitchinterval()¶
Return the interpreter's "thread switch interval" in seconds; see
setswitchinterval().Ajouté dans la version 3.2.
- sys._getframe([depth])¶
Renvoie une frame de la pile d'appels. Si le nombre entier optionnel depth est donné, la frame donnée sera de depth appels depuis le haut de la pile. Si c'est plus profond que la hauteur de la pile, une exception
ValueErrorest levée. La profondeur par défaut est zéro, donnant ainsi la frame du dessus de la pile.Raises an auditing event
sys._getframewith argumentframe.Cette fonction ne devrait être utilisée que pour une utilisation interne et spécifique. Il n'est pas garanti qu'elle existe dans toutes les implémentations de Python.
- sys._getframemodulename([depth])¶
Return the name of a module from the call stack. If optional integer depth is given, return the module that many calls below the top of the stack. If that is deeper than the call stack, or if the module is unidentifiable,
Noneis returned. The default for depth is zero, returning the module at the top of the call stack.Raises an auditing event
sys._getframemodulenamewith argumentdepth.Cette fonction ne devrait être utilisée que pour une utilisation interne et spécifique. Il n'est pas garanti qu'elle existe dans toutes les implémentations de Python.
Ajouté dans la version 3.12.
- sys.getobjects(limit[, type])¶
This function only exists if CPython was built using the specialized configure option
--with-trace-refs. It is intended only for debugging garbage-collection issues.Return a list of up to limit dynamically allocated Python objects. If type is given, only objects of that exact type (not subtypes) are included.
Objects from the list are not safe to use. Specifically, the result will include objects from all interpreters that share their object allocator state (that is, ones created with
PyInterpreterConfig.use_main_obmallocset to 1 or usingPy_NewInterpreter(), and the main interpreter). Mixing objects from different interpreters may lead to crashes or other unexpected behavior.Particularité de l'implémentation CPython : This function should be used for specialized purposes only. It is not guaranteed to exist in all implementations of Python.
Modifié dans la version 3.14: The result may include objects from other interpreters.
- sys.getprofile()¶
Renvoie la fonction de profilage tel que défini par
setprofile().
- sys.gettrace()¶
Renvoie la fonction de traçage tel que définie par
settrace().La fonction
gettrace()ne sert que pour implémenter des débogueurs, des profilers, outils d'analyse de couverture, etc…. Son comportement dépend de l'implémentation et non du langage, elle n'est donc pas forcément disponible dans toutes les implémentations de Python.
- sys.getwindowsversion()¶
Renvoie un n-uplet nommé décrivant la version de Windows en cours d'exécution. Les attributs nommés sont major, minor, build, platform, service_pack, service_pack_minor, service_pack_major, suite_mask, product_type et platform_version. service_pack contient une string, platform_version un triplet, et tous les autres sont des nombres entiers. Ces attributs sont également accessibles par leur nom, donc
sys.getwindowsversion()[0]est équivalent àsys.getwindowsversion().major. Pour des raisons de compatibilité avec les versions antérieures, seuls les 5 premiers éléments sont accessibles par leur indice.platform will be
2(VER_PLATFORM_WIN32_NT).product_type peut être une des valeurs suivantes :
Constante
Signification
1(VER_NT_WORKSTATION)Le système une station de travail.
2(VER_NT_DOMAIN_CONTROLLER)Le système est un contrôleur de domaine.
3(VER_NT_SERVER)Le système est un serveur, mais pas un contrôleur de domaine.
This function wraps the Win32
GetVersionEx()function; see the Microsoft documentation onOSVERSIONINFOEX()for more information about these fields.platform_version returns the major version, minor version and build number of the current operating system, rather than the version that is being emulated for the process. It is intended for use in logging rather than for feature detection.
Note
platform_version derives the version from kernel32.dll which can be of a different version than the OS version. Please use
platformmodule for achieving accurate OS version.Disponibilité: Windows.
Modifié dans la version 3.2: Changé en un n-uplet nommé, et ajout de service_pack_minor, service_pack_major, suite_mask, et product_type.
Modifié dans la version 3.6: Ajout de platform_version
- sys.get_asyncgen_hooks()¶
Renvoie un objet asyncgen_hooks, qui est semblable à un
namedtuplede la forme(firstiter, finalizer), où firstiter et finalizer sont soitNoneou des fonctions qui prennent un asynchronous generator iterator comme argument, et sont utilisées pour planifier la finalisation d'un générateur asynchrone par un event loop.Ajouté dans la version 3.6: Voir la PEP 525 pour plus d'informations.
Note
Cette fonction à été ajoutée à titre provisoire (voir la PEP 411 pour plus d'informations.)
- sys.get_coroutine_origin_tracking_depth()¶
Récupère le nombre de cadres d'exécution conservés par les coroutines pour le suivi de leur création, telle que défini par
set_coroutine_origin_tracking_depth().Ajouté dans la version 3.7.
Note
Cette fonction à été ajoutée à titre provisoire (Voir la PEP 411 pour plus d'informations.) Utilisez la uniquement à des fins de débogage.
- sys.hash_info¶
Un named tuple donnant les paramètres de l'implémentation de la fonction de hachage de nombres. Pour plus d'informations sur le hachage des types numériques, consultez Hachage des types numériques.
- 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
Ajouté dans la version 3.2.
Modifié dans la version 3.4: Ajout de algorithm, hash_bits et seed_bits
- sys.hexversion¶
Le numéro de version codé sous forme d'un seul nombre entier. Ce numéro augmente avec chaque version, y compris pour les versions hors production. Par exemple, pour vérifier que l'interpréteur Python est au moins la version 1.5, utilisez :
if sys.hexversion >= 0x010502F0: # use some advanced feature ... else: # use an alternative implementation or warn the user ...
Cet attribut s'appelle
hexversiondans le sens où il ne semble avoir du sens que s'il est regardé après avoir été passé à la fonction nativehex(). Le named tuplesys.version_inforeprésente la même information d'une manière plus humaine.Consultez Version des API et ABI pour plus d'informations sur
hexversion.
- sys.implementation¶
Un objet contenant des informations sur l'implémentation de la version actuelle de l'interpréteur Python. Les attributs suivants existent obligatoirement sur toutes les implémentations Python.
name est l'identifiant de l'implémentation, e.g.
'cpython'. Cette chaîne est définie par l'implémentation de Python, mais sera toujours en minuscule.version est un n-uplet nommé, du même format que
sys.version_info. Il représente la version de l'implementation de Python. C'est une information différente de la version du langage auquel l'interpréteur actuel se conforme (donnée parsys.version_info). Par exemple, pour PyPy 1.8sys.implementation.versionpeut valoirsys.version_info(1, 8, 0, 'final', 0), alors quesys.version_infopeut valoirsys.version_info(2, 7, 2, 'final', 0). Pour CPython ces deux valeurs sont identiques puisque c'est l'implémentation de référence.hexversion est la version de l'implémentation sous forme hexadécimale, comme
sys.hexversion.cache_tag est la balise utilisée par le mécanisme d'importation dans les noms de fichiers des modules mis en cache. Par convention, il devrait se composer du nom et de la version de l'implémentation, comme
'cpython-33'. Cependant, une implémentation Python peut utiliser une autre valeur si nécessaire.cache_tagàNonesignifie que la mise en cache des modules doit être désactivée.supports_isolated_interpreters is a boolean value, whether this implementation supports multiple isolated interpreters. It is
Truefor CPython on most platforms. Platforms with this support implement the low-level_interpretersmodule.Voir aussi
sys.implementationpeut contenir d'autres attributs spécifiques à l'implémentation de Python. Ces attributs spécifiques doivent commencer par un underscore, et ne sont pas documentés ici. Indépendamment de son contenu,sys.implementationne change jamais durant l'exécution de l'interpréteur, ni entre les versions d'une même implémentation. (Il peut cependant changer entre les versions du langage Python.) Voir la PEP 421 pour plus d'informations.Ajouté dans la version 3.3.
Modifié dans la version 3.14: Added
supports_isolated_interpretersfield.Note
L'addition de nouveaux attributs requis doivent passer par le processus de PEP classique. Voir PEP 421 pour plus d'informations.
- sys.int_info¶
Un named tuple qui contient des informations sur la représentation interne des entiers de Python. Les attributs sont en lecture seule.
- 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.
Ajouté dans la version 3.1.
Modifié dans la version 3.11: Added
default_max_str_digitsandstr_digits_check_threshold.
- sys.__interactivehook__¶
Lorsque cet attribut existe, sa valeur est automatiquement appelée (sans argument) par l'interpréteur lors de son démarrage en mode interactif. L'appel se fait après que le fichier
PYTHONSTARTUPsoit lu, afin que vous puissiez y configurer votre fonction. Configuré par le modulesite.Lève un évènement d'audit
cpython.run_interactivehookavec l'objet de point d'entrée comme argument lorsqu'il est appelé au démarrage.Ajouté dans la version 3.4.
- sys.intern(string)¶
Ajoute string dans le tableau des chaînes "internées" et renvoie la chaîne internée -- qui peut être string elle-même ou une copie. Interner une chaîne de caractères permet de gagner un peu de performance lors de l'accès aux dictionnaires -- si les clés du dictionnaire et la clé recherchée sont internées, les comparaisons de clés (après le hachage) pourront se faire en comparant les pointeurs plutôt que caractère par caractère. Normalement, les noms utilisés dans les programmes Python sont automatiquement internés, et les dictionnaires utilisés pour stocker les attributs de modules, de classes, ou d'instances ont aussi leurs clés internées.
Interned strings are not immortal; you must keep a reference to the return value of
intern()around to benefit from it.
- sys._is_gil_enabled()¶
Return
Trueif the GIL is enabled andFalseif it is disabled.Ajouté dans la version 3.13.
Particularité de l'implémentation CPython : It is not guaranteed to exist in all implementations of Python.
- sys.is_finalizing()¶
Return
Trueif the main Python interpreter is shutting down. ReturnFalseotherwise.See also the
PythonFinalizationErrorexception.Ajouté dans la version 3.5.
- sys._jit¶
Utilities for observing just-in-time compilation.
Particularité de l'implémentation CPython : JIT compilation is an experimental implementation detail of CPython.
sys._jitis not guaranteed to exist or behave the same way in all Python implementations, versions, or build configurations.Ajouté dans la version 3.14.
- _jit.is_available()¶
Return
Trueif the current Python executable supports JIT compilation, andFalseotherwise. This can be controlled by building CPython with the--experimental-jitoption on Windows, and the--enable-experimental-jitoption on all other platforms.
- _jit.is_enabled()¶
Return
Trueif JIT compilation is enabled for the current Python process (impliessys._jit.is_available()), andFalseotherwise. If JIT compilation is available, this can be controlled by setting thePYTHON_JITenvironment variable to0(disabled) or1(enabled) at interpreter startup.
- _jit.is_active()¶
Return
Trueif the topmost Python frame is currently executing JIT code (impliessys._jit.is_enabled()), andFalseotherwise.Note
This function is intended for testing and debugging the JIT itself. It should be avoided for any other purpose.
Note
Due to the nature of tracing JIT compilers, repeated calls to this function may give surprising results. For example, branching on its return value will likely lead to unexpected behavior (if doing so causes JIT code to be entered or exited):
>>> for warmup in range(BIG_NUMBER): ... # This line is "hot", and is eventually JIT-compiled: ... if sys._jit.is_active(): ... # This line is "cold", and is run in the interpreter: ... assert sys._jit.is_active() ... Traceback (most recent call last): File "<stdin>", line 5, in <module> assert sys._jit.is_active() ~~~~~~~~~~~~~~~~~~^^ AssertionError
- sys.last_exc¶
This variable is not always defined; it is set to the exception instance when an exception is not handled and the interpreter prints an error message and a stack traceback. Its intended use is to allow an interactive user to import a debugger module and engage in post-mortem debugging without having to re-execute the command that caused the error. (Typical use is
import pdb; pdb.pm()to enter the post-mortem debugger; seepdbmodule for more information.)Ajouté dans la version 3.12.
- sys._is_immortal(op)¶
Return
Trueif the given object is immortal,Falseotherwise.Note
Objects that are immortal (and thus return
Trueupon being passed to this function) are not guaranteed to be immortal in future versions, and vice versa for mortal objects.Ajouté dans la version 3.14.
Particularité de l'implémentation CPython : This function should be used for specialized purposes only. It is not guaranteed to exist in all implementations of Python.
- sys._is_interned(string)¶
Return
Trueif the given string is "interned",Falseotherwise.Ajouté dans la version 3.13.
Particularité de l'implémentation CPython : It is not guaranteed to exist in all implementations of Python.
- sys.last_type¶
- sys.last_value¶
- sys.last_traceback¶
These three variables are deprecated; use
sys.last_excinstead. They hold the legacy representation ofsys.last_exc, as returned fromexc_info()above.
- sys.maxsize¶
Un entier donnant à la valeur maximale qu'une variable de type
Py_ssize_tpeut prendre. C'est typiquement2**31 - 1sur une plateforme 32 bits et2**63 - 1sur une plateforme 64 bits.
- sys.maxunicode¶
Un entier donnant la valeur du plus grand point de code Unicode, c'est-à-dire
1114111(0x10FFFFen hexadécimal).Modifié dans la version 3.3: Avant la PEP 393,
sys.maxunicodevalait soit0xFFFFsoit0x10FFFF, en fonction l'option de configuration qui spécifiait si les caractères Unicode étaient stockés en UCS-2 ou 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, orNoneif the module cannot be found.Voir aussi
importlib.abc.MetaPathFinderLa classe de base abstraite définissant l'interface des objets finder de
meta_path.importlib.machinery.ModuleSpecLa classe concrète dont
find_spec()devrait renvoyer des instances.
Modifié dans la version 3.4: Module specs were introduced in Python 3.4, by PEP 451.
Modifié dans la version 3.12: Removed the fallback that looked for a
find_module()method if ameta_pathentry didn't have afind_spec()method.
- 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¶
The list of the original command line arguments passed to the Python executable.
The elements of
sys.orig_argvare the arguments to the Python interpreter, while the elements ofsys.argvare the arguments to the user's program. Arguments consumed by the interpreter itself will be present insys.orig_argvand missing fromsys.argv.Ajouté dans la version 3.10.
- sys.path¶
Une liste de chaînes de caractères spécifiant les chemins de recherche des modules, initialisée à partir de la variable d'environnement
PYTHONPATHet d'une valeur par défaut dépendante de l'installation.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 modulecommand line: prepend the current working directory.python script.pycommand line: prepend the script's directory. If it's a symbolic link, resolve symbolic links.python -c codeandpython(REPL) command lines: prepend an empty string, which means the current working directory.
To not prepend this potentially unsafe path, use the
-Pcommand line option or thePYTHONSAFEPATHenvironment 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¶
Une liste d'appelables d'un argument, path, pour essayer de créer un finder pour ce chemin. Si un finder peut être créé, il doit être renvoyé par l'appelable, sinon une
ImportErrordoit être levée.Précisé à l'origine dans la PEP 302.
- sys.path_importer_cache¶
Un dictionnaire faisant office de cache pour les objets finder. Les clés sont les chemins qui ont été passés à
sys.path_hookset les valeurs sont les finders trouvés. Si un chemin est valide selon le système de fichiers mais qu'aucun finder n'est trouvé danssys.path_hooks,Noneest stocké.Précisé à l'origine dans la PEP 302.
- sys.platform¶
A string containing a platform identifier. Known values are:
Système
Valeur pour
plateformeAIX
'aix'Android
'android'Emscripten
'emscripten'FreeBSD
'freebsd'iOS
'ios'Linux
'linux'macOS
'darwin'Windows
'win32'Windows/Cygwin
'cygwin'WASI
'wasi'On Unix systems not listed in the table, the value is the lowercased OS name as returned by
uname -s, with the first part of the version as returned byuname -rappended, e.g.'sunos5', at the time when Python was built. Unless you want to test for a specific system version, it is therefore recommended to use the following idiom:if sys.platform.startswith('sunos'): # SunOS-specific code here...
Modifié dans la version 3.3: On Linux,
sys.platformdoesn't contain the major version anymore. It is always'linux', instead of'linux2'or'linux3'.Modifié dans la version 3.8: On AIX,
sys.platformdoesn't contain the major version anymore. It is always'aix', instead of'aix5'or'aix7'.Modifié dans la version 3.13: On Android,
sys.platformnow returns'android'rather than'linux'.Modifié dans la version 3.14: On FreeBSD,
sys.platformdoesn't contain the major version anymore. It is always'freebsd', instead of'freebsd13'or'freebsd14'.Voir aussi
os.namehas a coarser granularity.os.uname()gives system-dependent version information.Le module
platformfournit des vérifications détaillées pour l'identité du système.
- sys.platlibdir¶
Nom du dossier de la bibliothèque spécifique à la plateforme. Il est utilisé pour construire le chemin de vers la bibliothèque standard et les chemins vers les modules d'extensions installés.
C'est égal à
"lib"sur la plupart des plateformes. Sur Fedora et SuSE, c'est égal à"lib64"sur les plateformes 64-bits qui renvoient les cheminssys.pathsuivants (oùX.Yet la versionmajeure.mineurde Python) :/usr/lib64/pythonX.Y/: Bibliothèque standard (commeos.pydu moduleos)/usr/lib64/pythonX.Y/lib-dynload/: Modules d'extension C de la bibliothèque standard (comme le moduleerrno, le nom du fichier exact est spécifique à la plateforme)/usr/lib/pythonX.Y/site-packages/(toujours utiliserlib, et nonsys.platlibdir) : modules tiers/usr/lib64/pythonX.Y/site-packages/: Modules d'extension C de paquets tiers
Ajouté dans la version 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--prefixargument to the configure script. See Installation paths for derived paths.Note
If a virtual environment is in effect, this
prefixwill point to the virtual environment. The value for the Python installation will still be available, viabase_prefix. Refer to Virtual Environments for more information.Modifié dans la version 3.14: When running under a virtual environment,
prefixandexec_prefixare now set to the virtual environment prefix by the path initialization, instead ofsite. This means thatprefixandexec_prefixalways point to the virtual environment, even whensiteis disabled (-S).
- sys.ps1¶
- sys.ps2¶
Chaînes spécifiant l'invite primaire et secondaire de l'interpréteur. Celles-ci ne sont définies que si l'interpréteur est en mode interactif. Dans ce cas, leurs valeurs initiales sont
'>>>'et'...'. Si un objet qui n'est pas une chaîne est assigné à l'une ou l'autre variable, sa méthodestr()sera appelée à chaque fois que l'interpréteur se prépare à lire une nouvelle commande interactive, c'est donc utilisable pour implémenter une invite dynamique.
- 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 theosmodule (RTLD_xxxconstants, e.g.os.RTLD_LAZY).Disponibilité: Unix.
- sys.set_int_max_str_digits(maxdigits)¶
Set the integer string conversion length limitation used by this interpreter. See also
get_int_max_str_digits().Ajouté dans la version 3.11.
- sys.setprofile(profilefunc)¶
Définit la fonction de profilage du système, qui vous permet d'implémenter un profileur de code source Python en Python. Voir le chapitre The Python Profilers pour plus d'informations sur le profileur Python. La fonction de profilage du système est appelée de la même façon que la fonction trace du système (voir
settrace()), mais elle est appelée pour des évènements différents, par exemple elle n'est pas appelée à chaque ligne de code exécutée (seulement sur appel et retours, mais l'événement pour les retours est appelé même en cas d'exception). Cette fonction est locale au fil d'exécution, et il n'existe aucun moyen, du point de vue du profileur, de prendre conscience des changements de contextes entre fils d'exécution, ça n'a donc aucun sens d'utiliser cette fonction dans un contexte multithread. Sa valeur de retour n'est pas utilisée, elle peut simplement renvoyerNone.Note
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().Les fonctions de traçage doivent avoir trois arguments : frame, event, et arg. frame est la stack frame actuelle. event est une chaîne de caractères pouvant valoir :
'call','return','c_call','c_return'ou'c_exception'. arg dépend du type de l'évènement.Les événements ont la signification suivante :
'call'Une fonction est appelée (ou Python entre dans un autre bloc de code). La fonction de traçage est appelée, arg est
None.'return'La fonction (ou un autre type de bloc) est sur le point de se terminer. La fonction de traçage est appelée, arg est la valeur qui sera renvoyée, ou
Nonesi l'événement est causé par la levée d'une exception.'c_call'Une fonction C est sur le point d'être appelée. C'est soit une fonction d'extension ou une fonction native. arg représente la fonction C.
'c_return'Une fonction C a renvoyé une valeur. arg représente la fonction C.
'c_exception'Une fonction C a levé une exception. arg représente la fonction C.
Lève un évènement d'audit
sys.setprofilesans arguments.
- sys.setrecursionlimit(limit)¶
Définit la profondeur maximale de la pile de l'interpréteur Python à limit. Cette limite empêche une récursion infinie de provoquer un débordement de la pile C et ainsi un crash de Python.
La limite haute dépend de la plate-forme. Un utilisateur pourrait avoir besoin de remonter la limite, lorsque son programme nécessite une récursion profonde, si sa plate-forme le permet. Cela doit être fait avec précaution, car une limite trop élevée peut conduire à un crash.
Si la nouvelle limite est plus basse que la profondeur actuelle, une
RecursionErrorest levée.Modifié dans la version 3.5.1: Une
RecursionErrorest maintenant levée si la nouvelle limite est plus basse que la profondeur de récursion actuelle.
- sys.setswitchinterval(interval)¶
Configure l'intervalle de bascule des fils d'exécution de l'interpréteur (en secondes). Ce nombre à virgule flottante détermine la durée idéale allouée aux fils d'exécution en cour d'exécution (durée appelée timeslices). Notez que la durée observée peut être plus grande, typiquement si des fonctions ou méthodes prenant beaucoup de temps sont utilisées. Aussi, le choix du fil d'exécution prenant la main à la fin de l'intervalle revient au système d'exploitation. L'interpréteur n'a pas son propre ordonnanceur.
Ajouté dans la version 3.2.
- sys.settrace(tracefunc)¶
Définit la fonction de traçage du système, qui vous permet d'implémenter un débogueur de code source Python en Python. Cette fonction est locale au fil d'exécution courant. Pour qu'un débogueur puisse gérer plusieurs fils d'exécution, il doit enregistrer sa fonction en appelant
settrace()pour chaque fil d'exécution qu'il souhaite surveiller ou utilisezthreading.settrace().Trace functions should have three arguments: frame, event, and arg. frame is the current stack frame. event is a string:
'call','line','return','exception'or'opcode'. arg depends on the event type.La fonction de traçage est appelée (avec event à
'call') à chaque fois que l'interpréteur entre dans un nouveau scope. Elle doit renvoyer une référence à une fonction de traçage locale à utiliser pour ce scope, ouNonesi le Scope ne doit pas être tracé.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 une erreur se produit dans la fonction de trace, elle sera désactivée, tout comme si
settrace(None)avait été appelée.Note
Tracing is disabled while calling the trace function (e.g. a function set by
settrace()). For recursive tracing seecall_tracing().Les événements ont la signification suivante :
'call'Une fonction est appelée (un un bloc de code). La fonction de traçage globale est appelée, arg est
None, la valeur renvoyée donne la fonction de traçage locale.'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.txtfor a detailed explanation of how this works. Per-line events may be disabled for a frame by settingf_trace_linestoFalseon that frame.'return'La fonction (ou un autre type de bloc) est sur le point de se terminer. La fonction de traçage locale est appelée, arg est la valeur qui sera renvoyée, ou
Nonesi l'événement est causé par la levée d'une exception. La valeur renvoyée par la fonction de traçage est ignorée.'exception'Une exception est survenue. La fonction de traçage locale est appelée, arg est le triplet
(exception, valeur, traceback), la valeur renvoyée spécifie la nouvelle fonction de traçage locale.'opcode'The interpreter is about to execute a new opcode (see
disfor 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_opcodestoTrueon the frame.
Remarquez que, comme une exception se propage au travers de toute chaîne d'appelants, un événement
'exception'est généré à chaque niveau.Pour une utilisation plus fine, il est possible de définir une fonction de traçage en assignant
frame.f_trace = tracefuncexplicitement, plutôt que de s'appuyer sur le fait qu'elle soit définie indirectement par la valeur de retour d'une fonction trace déjà installée. Cela est aussi demandé pour l'activation de la fonction de traçage dans le cadre, ce quesettrace()ne fait pas. Notez que pour que cela fonctionne, une fonction globale de traçage doit avoir été installée avecsettrace()afin d'activer le mécanisme de traçage au moment de l'exécution, mais il n'est pas nécessaire que ce soit la même fonction de traçage (Par exemple, cela pourrait être une fonction de traçage avec peu de surcharge qui retourne simplementNonepour se désactiver immédiatement à chaque cadre).Pour plus d'informations sur les objets code et objets représentant une frame de la pile, consultez Hiérarchie des types standards.
Lève un évènement d'audit
sys.settracesans arguments.La fonction
settrace()est destinée uniquement à l'implémentation de débogueurs, de profileurs, d'outils d'analyse de couverture et d'autres outils similaires. Son comportement fait partie de l'implémentation, plutôt que de la définition du langage, et peut donc ne pas être disponible dans toutes les implémentations de Python.Modifié dans la version 3.7:
'opcode'event type added;f_trace_linesandf_trace_opcodesattributes added to frames
- sys.set_asyncgen_hooks([firstiter] [, finalizer])¶
Accepte deux arguments optionnels nommés, qui sont appelables qui acceptent un asynchronous generator iterator comme argument. L'appelable firsttiter sera appelé lorsqu'un générateur asynchrone sera itéré pour la première fois, et l'appelable finalizer sera appelé lorsqu'un générateur asynchrone est sur le point d'être détruit.
Lève un évènement d'audit
sys.set_asyncgen_hooks_firstitersans arguments.Lève un événement d'audit
sys.set_asyncgen_hooks_finalizersans arguments.Deux événements d'audit sont levés car l'API sous-jacente consiste de deux appels, dont chacun doit lever son propre événement.
Ajouté dans la version 3.6: Voir la PEP 525 pour plus de détails. Pour un exemple de finalizer, voir l'implémentation de
asyncio.Loop.shutdown_asyncgensdans Lib/asyncio/base_events.pyNote
Cette fonction à été ajoutée à titre provisoire (voir la PEP 411 pour plus d'informations.)
- sys.set_coroutine_origin_tracking_depth(depth)¶
Allows enabling or disabling coroutine origin tracking. When enabled, the
cr_originattribute on coroutine objects will contain a tuple of (filename, line number, function name) tuples describing the traceback where the coroutine object was created, with the most recent call first. When disabled,cr_originwill beNone.To enable, pass a depth value greater than zero; this sets the number of frames whose information will be captured. To disable, set depth to zero.
Ce paramètre est spécifique au fil d'exécution courant.
Ajouté dans la version 3.7.
Note
Cette fonction à été ajoutée à titre provisoire (Voir la PEP 411 pour plus d'informations.) Utilisez la uniquement à des fins de débogage.
- sys.activate_stack_trampoline(backend, /)¶
Activate the stack profiler trampoline backend. The only supported backend is
"perf".Stack trampolines cannot be activated if the JIT is active.
Disponibilité: Linux.
Ajouté dans la version 3.12.
- sys.deactivate_stack_trampoline()¶
Deactivate the current stack profiler trampoline backend.
If no stack profiler is activated, this function has no effect.
Disponibilité: Linux.
Ajouté dans la version 3.12.
- sys.is_stack_trampoline_active()¶
Return
Trueif a stack profiler trampoline is active.Disponibilité: Linux.
Ajouté dans la version 3.12.
- sys.remote_exec(pid, script)¶
Executes script, a file containing Python code in the remote process with the given pid.
This function returns immediately, and the code will be executed by the target process's main thread at the next available opportunity, similarly to how signals are handled. There is no interface to determine when the code has been executed. The caller is responsible for making sure that the file still exists whenever the remote process tries to read it and that it hasn't been overwritten.
The remote process must be running a CPython interpreter of the same major and minor version as the local process. If either the local or remote interpreter is pre-release (alpha, beta, or release candidate) then the local and remote interpreters must be the same exact version.
When the code is executed in the remote process, an auditing event
sys.remote_execis raised with the pid and the path to the script file. This event is raised in the process that calledsys.remote_exec().When the script is executed in the remote process, an auditing event
cpython.remote_debugger_scriptis raised with the path in the remote process. This event is raised in the remote process, not the one that calledsys.remote_exec().Disponibilité: Unix, Windows.
Ajouté dans la version 3.14.
- sys._enablelegacywindowsfsencoding()¶
Changes the filesystem encoding and error handler to 'mbcs' and 'replace' respectively, for consistency with versions of Python prior to 3.6.
Équivaut à définir la variable d'environnement
PYTHONLEGACYWINDOWSFSENCODINGavant de lancer Python.See also
sys.getfilesystemencoding()andsys.getfilesystemencodeerrors().Disponibilité: Windows.
Note
Changing the filesystem encoding after Python startup is risky because the old fsencoding or paths encoded by the old fsencoding may be cached somewhere. Use
PYTHONLEGACYWINDOWSFSENCODINGinstead.Ajouté dans la version 3.6: Voir la PEP 529 pour plus d'informations.
Deprecated since version 3.13, will be removed in version 3.16: Use
PYTHONLEGACYWINDOWSFSENCODINGinstead.
- sys.stdin¶
- sys.stdout¶
- sys.stderr¶
objets fichiers utilisés par l'interpréteur pour l'entrée standard, la sortie standard et la sortie d'erreurs :
stdinest utilisé pour toutes les entrées interactives (y compris les appels àinput())stdoutest utilisé pour la sortie deprint(), des expression et pour les invites deinput();Les invites de l'interpréteur et ses messages d'erreur sont écrits sur
stderr.
Ces flux sont de classiques fichiers texte comme ceux renvoyés par la fonction
open(). Leurs paramètres sont choisis comme suit :The encoding and error handling are is initialized from
PyConfig.stdio_encodingandPyConfig.stdio_errors.On Windows, UTF-8 is used for the console device. Non-character devices such as disk files and pipes use the system locale encoding (i.e. the ANSI codepage). Non-console character devices such as NUL (i.e. where
isatty()returnsTrue) use the value of the console input and output codepages at startup, respectively for stdin and stdout/stderr. This defaults to the system locale encoding if the process is not initially attached to a console.Le comportement spécial de la console peut être redéfini en assignant la variable d'environnement PYTHONLEGACYWINDOWSSTDIO avant de démarrer Python. Dans ce cas, les pages de code de la console sont utilisées comme pour tout autre périphérique de caractères.
Sous toutes les plateformes, vous pouvez redéfinir le codage de caractères en assignant la variable d'environnement
PYTHONIOENCODINGavant de démarrer Python ou en utilisant la nouvelle option de ligne de commande-Xutf8et la variable d'environnementPYTHONUTF8. Toutefois, pour la console Windows, cela s'applique uniquement lorsquePYTHONLEGACYWINDOWSSTDIOest également défini.When interactive, the
stdoutstream is line-buffered. Otherwise, it is block-buffered like regular text files. Thestderrstream is line-buffered in both cases. You can make both streams unbuffered by passing the-ucommand-line option or setting thePYTHONUNBUFFEREDenvironment variable.
Modifié dans la version 3.9: Le
stderrnon interactif est maintenant mis en mémoire-tampon ligne par ligne plutôt qu'entièrement.Note
Pour écrire ou lire des données binaires depuis ou vers les flux standards, utilisez l'objet sous-jacent
buffer. Par exemple, pour écrire des octets surstdout, utilisezsys.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.StringIOwhich do not support thebufferattribute.
- sys.__stdin__¶
- sys.__stdout__¶
- sys.__stderr__¶
Ces objets contiennent les valeurs d'origine de
stdin,stderretstdouttel que présentes au début du programme. Ils sont utilisés pendant la finalisation, et peuvent être utiles pour écrire dans le vrai flux standard, peu importe si l'objetsys.std*a été redirigé.Ils peuvent également être utilisés pour restaurer les entrées / sorties d'origine, au cas où ils auraient été écrasés par des objets cassé, cependant la bonne façon de faire serait de sauvegarder explicitement les flux avant de les remplacer et ainsi pouvoir les restaurer.
Note
Dans certaines cas,
stdin,stdoutetstderrainsi que les valeurs initiales__stdin__,__stdout__et__stderr__peuvent êtreNone. C'est typiquement le cas pour les applications graphiques sur Windows qui ne sont pas connectées à une console, ou les applications Python démarrées avec pythonw.
- sys.stdlib_module_names¶
A frozenset of strings containing the names of standard library modules.
It is the same on all platforms. Modules which are not available on some platforms and modules disabled at Python build are also listed. All module kinds are listed: pure Python, built-in, frozen and extension modules. Test modules are excluded.
For packages, only the main package is listed: sub-packages and sub-modules are not listed. For example, the
emailpackage is listed, but theemail.mimesub-package and theemail.messagesub-module are not listed.See also the
sys.builtin_module_nameslist.Ajouté dans la version 3.10.
- sys.thread_info¶
Un named tuple contenant des informations sur l'implémentation des fils d'exécution.
- 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 variableNonesi cette information n'est pas connue
- thread_info.version¶
The name and version of the thread library. It is a string, or
Noneif this information is unknown.
Ajouté dans la version 3.3.
- sys.tracebacklimit¶
Lorsque cette variable contient un nombre entier, elle détermine la profondeur maximum de la pile d'appels affichée lorsqu'une exception non gérée se produit. La valeur par défaut est
1000, lorsque cette valeur est égale ou inférieure à0, la pile d'appels n'est pas affichée, seul seuls le type et la valeur de l'exception sont le sont.
- sys.unraisablehook(unraisable, /)¶
Gère une exception non levable (unraisable en anglais)
Appelé lorsqu'une exception s'est produite mais qu'il n'y a aucun moyen pour Python de la gérer. Par exemple, lorsqu'un destructeur lève une exception ou durant le passage du ramasse-miettes (
gc.collect()).Les arguments unraisable ont la signification suivante :
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_msgandobjectas:f'{err_msg}: {object!r}'; use "Exception ignored in" error message iferr_msgisNone. Similar to thetracebackmodule, this adds color to exceptions by default. This can be disabled using environment variables.sys.unraisablehook()peut être remplacé pour contrôler comment les exceptions non levables (unraisable en anglais) sont gérées.Modifié dans la version 3.15: Exceptions are now printed with colorful text.
Voir aussi
excepthook()which handles uncaught exceptions.Avertissement
Storing
exc_valueusing 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
objectusing a custom hook can resurrect it if it is set to an object which is being finalized. Avoid storingobjectafter the custom hook completes to avoid resurrecting objects.Raise an auditing event
sys.unraisablehookwith 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.Ajouté dans la version 3.8.
- sys.version¶
Une chaîne contenant le numéro de version de l'interpréteur Python, ainsi que d'autres informations comme le numéro de compilation et le compilateur utilisé. Cette chaîne est affichée lorsque l'interpréteur est démarré en mode interactif. N'essayez pas d'en extraire des informations de version, utilisez plutôt
version_infoet les fonctions fournies par le moduleplatform.
- sys.api_version¶
The C API version, equivalent to the C macro
PYTHON_API_VERSION. Defined for backwards compatibility.Currently, this constant is not updated in new Python versions, and is not useful for versioning. This may change in the future.
- sys.version_info¶
Un quintuplet contenant les composants du numéro de version : major, minor, micro, releaselevel et serial. Toutes les valeurs sauf releaselevel sont des nombres entiers. releaselevel peut valoir
'alpha','beta','candidate', ou'final'. La valeur deversion_infopour Python 2.0 est(2, 0, 0, 'final', 0). Ces attributs sont aussi accessibles par leur nom, ainsisys.version_info[0]est équivalent àsys.version_info.major, et ainsi de suite.Modifié dans la version 3.1: Ajout des attributs nommés.
- sys.warnoptions¶
C'est une spécificité de l'implémentation de la gestion des avertissements. Ne modifiez pas cette valeur. Reportez-vous au module
warningspour plus d'informations sur le gestionnaire d'avertissements.
- 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
sysmodule for informational purposes; modifying this value has no effect on the registry keys used by Python.Disponibilité: Windows.
- sys.monitoring
Namespace containing functions and constants for register callbacks and controlling monitoring events. See
sys.monitoringfor details.
- sys._xoptions¶
Un dictionnaire des différentes options spécifiques à l'implémentation passés en ligne de commande via l'option
-X. Aux noms des options correspondent soit leur valeur, si elle est donnée explicitement, soit àTrue. Exemple :$ ./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}
C'est un moyen spécifique à CPython pour accéder aux options passées via l'option
-X. D'autres implémentations pourraient les exposer par d'autres moyens, ou pas du tout.Ajouté dans la version 3.2.
Citations
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.