PEP 554 – Multiple subinterpreters
PEP 554 was created in September, 2017, and is currently in Draft status. It is projected for inclusion in Python v3.8. This PEP discusses the potential of creating an interpreters
module, allowing access to multiple interpreters within the same process.
Multiple interpreters, also known as subinterpreters, have been a feature of Python since version 1.5. While most developers are aware of the normal Python interpreter, either through the interactive Python console or simply by executing code, there is the ability to support multiple, independent interpreters within the same process, and, if needed, within the same thread. The subinterpreters can be switched between by using the PyThreadState_Swap()
function.
Each subinterpreter is a nearly complete, separate Python environment for code execution. Each interpreter has separate and independent versions of all import modules, system paths, and even STDIN
, STDOUT
, and STDERR
streams. Extension modules can be...