Setuptools is a Python extension library for distributing Python libraries and extensions. It enhances distutils, a rudimentary module installation system included with Python, to include a number of more complicated operations that make it easier to distribute larger applications: Support for dependencies: a library or application can specify a list of additional libraries it relies on, which will be installed for you automatically. Setuptools registers your package with your Python installation through the package registry. This allows you to query information from one package using information from another package. The entry point support, which allows one package to define a "entry point" that another package can hook into to expand the other package, is the most well-known feature of this system. Installation manager: Other libraries can be installed using pip. Setuptools or distutils are used to distribute Flask and all of the libraries available on PyPI. If you have already installed Flask, then you also have setuptools available on your system because Flask is dependable on setuptools. A Flask application's basic setup.py file looks like this: from setuptools import setup[Text Wrapping Break][Text Wrapping Break]setup([Text Wrapping Break]    name='Your Application',[Text Wrapping Break]    version='1.0',[Text Wrapping Break]    long_description=__doc__,[Text Wrapping Break]    packages=['yourapplication'],[Text Wrapping Break]    include_package_data=True,[Text Wrapping Break]    zip_safe=False,[Text Wrapping Break]    install_requires=['Flask'][Text Wrapping Break]) Please keep in mind that you must explicitly list subpackages. You can use the find packages method to have setuptools hunt up the packages for you automatically: from setuptools import setup, find_packages[Text Wrapping Break][Text Wrapping Break]setup([Text Wrapping Break]    ...[Text Wrapping Break]    packages=find_packages()[Text Wrapping Break])