An object containing information about the implementation of the
currently running Python interpreter. The following attributes are
required to exist in all Python implementations.
name is the implementation’s identifier, e.g. 'cpython'. The actual
string is defined by the Python implementation, but it is guaranteed to be
lower case.
version is a named tuple, in the same format as
sys.version_info. It represents the version of the Python
implementation. This has a distinct meaning from the specific
version of the Python language to which the currently running
interpreter conforms, which sys.version_info represents. For
example, for PyPy 1.8 sys.implementation.version might be
sys.version_info(1, 8, 0, 'final', 0), whereas sys.version_info
would be sys.version_info(2, 7, 2, 'final', 0). For CPython they
are the same value, since it is the reference implementation.
hexversion is the implementation version in hexadecimal format, like
sys.hexversion.
cache_tag is the tag used by the import machinery in the filenames of
cached modules. By convention, it would be a composite of the
implementation’s name and version, like 'cpython-33'. However, a
Python implementation may use some other value if appropriate. If
cache_tag is set to None, it indicates that module caching should
be disabled.
sys.implementation may contain additional attributes specific to
the Python implementation. These non-standard attributes must start with
an underscore, and are not described here. Regardless of its contents,
sys.implementation will not change during a run of the interpreter,
nor between implementation versions. (It may change between Python
language versions, however.) See PEP 421 for more information.