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 import
ed 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