I am going through the official Python tutorial, and it says
One particular module deserves some attention: sys, which is built into every Python interpreter.
However, if I start the python interpreter and type, for example, sys.path, I get a NameError: name sys is not defined.
Thus, I need to import sys if I want to have access to it.
So what does it mean that it is 'built into every python interpreter' ?
It simply means that
import sys
will succeed, regardless of which version of Python you're using. It comes with every Python installation. In contrast, e.g.,
import mpmath
will fail unless you've installed the mpmath package yourself, or it came bundled with the specific Python installation you're using.
So what does it mean that it is 'built into every python interpreter' ?
The sys module is written in C and compiled into the Python interpreter itself. Depending on the version of the interpreter, there may be more modules of this kind — sys.builtin_module_names lists them all.
As you have noticed, a built-in module still needs to be imported like any other extension.
>>> import sys
>>> sys.builtin_module_names
('_ast', '_codecs', '_collections', '_functools', '_imp', '_io', '_locale', '_operator', '_signal', '_sre', '_stat', '_string', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', 'atexit', 'builtins', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'posix', 'pwd', 'sys', 'time', 'xxsubtype', 'zipimport')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With