import os
import sys
from distutils import sysconfig


def std_modules():
    std_lib = sysconfig.get_python_lib(standard_lib=True)

    for top, dirs, files in os.walk(std_lib):
        for nm in files:
            prefix = top[len(std_lib)+1:]
            if prefix[:13] == 'site-packages':
                continue
            if nm == '__init__.py':
                yield top[len(std_lib)+1:].replace(os.path.sep, '.')
            elif nm[-3:] == '.py':
                yield os.path.join(prefix, nm)[:-3].replace(os.path.sep, '.')
            elif nm[-3:] == '.so' and top[-11:] == 'lib-dynload':
                yield nm[0:-3]

    for builtin in sys.builtin_module_names:
        yield builtin


if __name__ == "__main__":
    for each in std_modules():
        print(each)