========
Keywords
========
``name``
A string specifying the name of the package.
``version``
A string specifying the version number of the package.
``description``
A string describing the package in a single line.
``long_description``
A string providing a longer description of the package.
``long_description_content_type``
A string specifying the content type is used for the ``long_description``
(e.g. ``text/markdown``)
``author``
A string specifying the author of the package.
``author_email``
A string specifying the email address of the package author.
``maintainer``
A string specifying the name of the current maintainer, if different from
the author. Note that if the maintainer is provided, setuptools will use it
as the author in ``PKG-INFO``.
``maintainer_email``
A string specifying the email address of the current maintainer, if
different from the author.
``url``
A string specifying the URL for the package homepage.
``download_url``
A string specifying the URL to download the package.
``packages``
A list of strings specifying the packages that setuptools will manipulate.
``py_modules``
A list of strings specifying the modules that setuptools will manipulate.
``scripts``
A list of strings specifying the standalone script files to be built and
installed.
``ext_package``
A string specifying the base package name for the extensions provided by
this package.
``ext_modules``
A list of instances of ``setuptools.Extension`` providing the list of
Python extensions to be built.
``classifiers``
A list of strings describing the categories for the package.
``distclass``
A subclass of ``Distribution`` to use.
``script_name``
A string specifying the name of the setup.py script -- defaults to
``sys.argv[0]``
``script_args``
A list of strings defining the arguments to supply to the setup script.
``options``
A dictionary providing the default options for the setup script.
``license``
A string specifying the license of the package.
``license_file``
.. warning::
``license_file`` is deprecated. Use ``license_files`` instead.
``license_files``
A list of glob patterns for license related files that should be included.
If neither ``license_file`` nor ``license_files`` is specified, this option
defaults to ``LICEN[CS]E*``, ``COPYING*``, ``NOTICE*``, and ``AUTHORS*``.
``keywords``
A list of strings or a comma-separated string providing descriptive
meta-data. See: `PEP 0314`_.
.. _PEP 0314: https://www.python.org/dev/peps/pep-0314/
``platforms``
A list of strings or comma-separated string.
``cmdclass``
A dictionary providing a mapping of command names to ``Command``
subclasses.
``data_files``
.. warning::
``data_files`` is deprecated. It does not work with wheels, so it
should be avoided.
A list of strings specifying the data files to install.
``package_dir``
A dictionary providing a mapping of package to directory names.
``requires``
.. warning::
``requires`` is superseded by ``install_requires`` and should not be used
anymore.
``obsoletes``
.. warning::
``obsoletes`` is currently ignored by ``pip``.
List of strings describing packages which this package renders obsolete,
meaning that the two projects should not be installed at the same time.
Version declarations can be supplied. Version numbers must be in the format
specified in Version specifiers (e.g. ``foo (<3.0)``).
This field may be followed by an environment marker after a semicolon (e.g.
``foo; os_name == "posix"``)
The most common use of this field will be in case a project name changes,
e.g. Gorgon 2.3 gets subsumed into Torqued Python 1.0. When you install
Torqued Python, the Gorgon distribution should be removed.
``provides``
.. warning::
``provides`` is currently ignored by ``pip``.
List of strings describing package- and virtual package names contained
within this package.
A package may provide additional names, e.g. to indicate that multiple
projects have been bundled together. For instance, source distributions of
the ZODB project have historically included the transaction project, which
is now available as a separate distribution. Installing such a source
distribution satisfies requirements for both ZODB and transaction.
A package may also provide a “virtual” project name, which does not
correspond to any separately-distributed project: such a name might be used
to indicate an abstract capability which could be supplied by one of
multiple projects. E.g., multiple projects might supply RDBMS bindings for
use by a given ORM: each project might declare that it provides
ORM-bindings, allowing other projects to depend only on having at most one
of them installed.
A version declaration may be supplied and must follow the rules described in
Version specifiers. The distribution’s version number will be implied if
none is specified (e.g. ``foo (<3.0)``).
Each package may be followed by an environment marker after a semicolon
(e.g. ``foo; os_name == "posix"``).
.. Below are setuptools keywords, above are distutils
``include_package_data``
If set to ``True``, this tells ``setuptools`` to automatically include any
data files it finds inside your package directories that are specified by
your ``MANIFEST.in`` file. For more information, see the section on
:ref:`Including Data Files`.
``exclude_package_data``
A dictionary mapping package names to lists of glob patterns that should
be *excluded* from your package directories. You can use this to trim back
any excess files included by ``include_package_data``. For a complete
description and examples, see the section on :ref:`Including Data Files`.
``package_data``
A dictionary mapping package names to lists of glob patterns. For a
complete description and examples, see the section on :ref:`Including Data
Files`. You do not need to use this option if you are using
``include_package_data``, unless you need to add e.g. files that are
generated by your setup script and build process. (And are therefore not
in source control or are files that you don't want to include in your
source distribution.)
``zip_safe``
A boolean (True or False) flag specifying whether the project can be
safely installed and run from a zip file. If this argument is not
supplied, the ``bdist_egg`` command will have to analyze all of your
project's contents for possible problems each time it builds an egg.
``install_requires``
A string or list of strings specifying what other distributions need to
be installed when this one is. See the section on :ref:`Declaring
Dependencies` for details and examples of the format of this argument.
``entry_points``
A dictionary mapping entry point group names to strings or lists of strings
defining the entry points. Entry points are used to support dynamic
discovery of services or plugins provided by a project. See :ref:`Dynamic
Discovery of Services and Plugins` for details and examples of the format
of this argument. In addition, this keyword is used to support
:ref:`Automatic Script Creation