How to get a list of built-in modules in python?

前端 未结 6 1487
野的像风
野的像风 2020-12-04 14:22

I would like to get a list of names of built-in modules in python such that I can test the popularity of function\'s naming conventions (underline, CamelCase or mixedCase).<

相关标签:
6条回答
  • 2020-12-04 14:46

    It can be done using the given block of code below and it is the most effective way as per me.

    import sys
    a = sys.builtin_module_names
    print(a)
    

    The last line to be included if you want to print them. Here, a is a tuple and so it can access all the functionalities of a tuple.

    You can have a look at sys.builtin_module_names for further help https://docs.python.org/3/library/sys.html

    0 讨论(0)
  • 2020-12-04 14:48

    How about this? Though, this gets a list of built-in functions and variables rather than modules...

    dir(__builtins__)
    

    help('modules') will give you a list of all modules, according to How can I get a list of locally installed Python modules?. Not a list of strings, though.

    0 讨论(0)
  • 2020-12-04 14:59

    The compiled-in module names are in sys.builtin_module_names. For all importable modules, see pkgutil.iter_modules.

    Run these in a clean virtualenv to get (almost) only the modules that come with Python itself.


    Note that a “popularity poll” will necessarily include modules that use old, discouraged naming conventions because they were written before today's guidelines were put in place, and can't change because need to be backwards compatible. It might be useful for something, but not for answering best-practice questions such as “How should I name my functions?”. For that, see the PEP8, the Python style guide, especially the “Naming Conventions” section.

    0 讨论(0)
  • 2020-12-04 15:00

    Now there is a 3rd party package for this. It scrapes the TOC of the Standard Library page in the official Python docs and builds a list.

    You can install it using pip

    pip install stdlib_list
    

    and got get a list of libraries

    In [12]: from stdlib_list import stdlib_list
    
    In [13]: libraries = stdlib_list("3.5")
    
    In [14]: libraries[4:12]
    Out[14]: ['abc', 'aifc', 'argparse', 'array', 'ast', 'asynchat', 'asyncio', 'asyncore']
    

    You can find source code here.

    0 讨论(0)
  • 2020-12-04 15:04

    >>>dir (__builtins__)

    or

    >>>help (__builtins__)

    0 讨论(0)
  • 2020-12-04 15:11

    From the CPython`s docs:

    All known built-in modules are listed in sys.builtin_module_names

    Names of modules in sys.builtin_module_names is actual only for used a Python interpreter:

    A tuple of strings giving the names of all modules that are compiled into this Python interpreter

    Each built-in module use the special loader while importing: BuiltinImporter

    In [65]: import itertools, sys, gc
    
    In [66]: itertools.__loader__, sys.__loader__, gc.__loader__
    Out[66]: 
    (_frozen_importlib.BuiltinImporter,
     _frozen_importlib.BuiltinImporter,
     _frozen_importlib.BuiltinImporter)
    

    In the Python 3 the number of built-in modules has slightly increased

    $ python2.7 -c "import sys; print('Count built-in modules: %d' %len(sys.builtin_module_names)); print(sys.builtin_module_names)"
    Count built-in modules: 51
    ('__builtin__', '__main__', '_ast', '_bisect', '_codecs', '_collections', '_functools', '_heapq', '_io', '_locale', '_md5', '_random', '_sha', '_sha256', '_sha512', '_socket', '_sre', '_struct', '_symtable', '_warnings', '_weakref', 'array', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'datetime', 'errno', 'exceptions', 'fcntl', 'gc', 'grp', 'imp', 'itertools', 'marshal', 'math', 'operator', 'posix', 'pwd', 'select', 'signal', 'spwd', 'strop', 'sys', 'syslog', 'thread', 'time', 'unicodedata', 'xxsubtype', 'zipimport', 'zlib')
    $ python3.4 -c "import sys; print('Count built-in modules: %d' %len(sys.builtin_module_names)); print(sys.builtin_module_names)"
    Count built-in modules: 54
    ('_ast', '_bisect', '_codecs', '_collections', '_datetime', '_elementtree', '_functools', '_heapq', '_imp', '_io', '_locale', '_md5', '_operator', '_pickle', '_posixsubprocess', '_random', '_sha1', '_sha256', '_sha512', '_socket', '_sre', '_stat', '_string', '_struct', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', 'array', 'atexit', 'binascii', 'builtins', 'errno', 'faulthandler', 'fcntl', 'gc', 'grp', 'itertools', 'marshal', 'math', 'posix', 'pwd', 'pyexpat', 'select', 'signal', 'spwd', 'sys', 'syslog', 'time', 'unicodedata', 'xxsubtype', 'zipimport', 'zlib')
    

    As the CPython is implemented (primary) on the C programming language, so it is not easy to find it, as example location the Python`s module sys (based on this answer):

    $ locate sysmodule | grep python
    /usr/include/python2.7/sysmodule.h
    /usr/include/python3.4m/sysmodule.h
    /usr/local/include/python3.5m/sysmodule.h
    

    More information about getting an information about all available modules is the CPython, look in my answer here.

    0 讨论(0)
提交回复
热议问题