1:mod:`distutils` --- Building and installing Python modules 2=========================================================== 3 4.. module:: distutils 5 :synopsis: Support for building and installing Python modules into an 6 existing Python installation. 7.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org> 8 9 10The :mod:`distutils` package provides support for building and installing 11additional modules into a Python installation. The new modules may be either 12100%-pure Python, or may be extension modules written in C, or may be 13collections of Python packages which include modules coded in both Python and C. 14 15Most Python users will *not* want to use this module directly, but instead 16use the cross-version tools maintained by the Python Packaging Authority. In 17particular, 18`setuptools <https://setuptools.readthedocs.io/en/latest/>`__ is an 19enhanced alternative to :mod:`distutils` that provides: 20 21* support for declaring project dependencies 22* additional mechanisms for configuring which files to include in source 23 releases (including plugins for integration with version control systems) 24* the ability to declare project "entry points", which can be used as the 25 basis for application plugin systems 26* the ability to automatically generate Windows command line executables at 27 installation time rather than needing to prebuild them 28* consistent behaviour across all supported Python versions 29 30The recommended `pip <https://pip.pypa.io/>`__ installer runs all 31``setup.py`` scripts with ``setuptools``, even if the script itself only 32imports ``distutils``. Refer to the 33`Python Packaging User Guide <https://packaging.python.org>`_ for more 34information. 35 36For the benefits of packaging tool authors and users seeking a deeper 37understanding of the details of the current packaging and distribution 38system, the legacy :mod:`distutils` based user documentation and API 39reference remain available: 40 41* :ref:`install-index` 42* :ref:`distutils-index` 43