Runtime Features

This chapter covers the features of the Python standard library that allow a program to interact with the interpreter or the environment in which it runs.

During start-up, the interpreter loads the site module to configure settings specific to the current installation. The import path is constructed from a combination of environment settings, interpreter build parameters, and configuration files.

The sys module is one of the largest in the standard library. It includes functions for accessing a broad range of interpreter and system settings, including interpreter build settings and limits; command line arguments and program exit codes; exception handling; thread debugging and control; the import mechanism and imported modules; runtime control flow tracing; and standard input and output streams for the process.

While sys is focused on interpreter settings, os provides access to operating system information. It can be used for portable interfaces to system calls that return details about the running process such as its owner and environment variables. It also includes functions for working with the file system and process management.

Python is often used as a cross-platform language for creating portable programs. Even in a program intended to run anywhere, it is occasionally necessary to know the operating system or hardware architecture of the current system. The platform module provides functions to retrieve those settings

The limits for system resources such as the maximum process stack size or number of open files can be probed and changed through the resource module. It also reports the current consumption rates, so a process can be monitored for resource leaks.

The gc module gives access to the internal state of Python’s garbage collection system. It includes information useful for detecting and breaking object cycles, turning the collector on and off, and adjusting thresholds that automatically trigger collection sweeps.

The sysconfig module holds the compile-time variables from the build scripts, and can be used by build and packaging tools to generate paths and other settings dynamically.