Skip to content

Commit

Permalink
Merge pull request pallets#1588 from Akasurde/i_1465
Browse files Browse the repository at this point in the history
Updated documentation for Setuptools
  • Loading branch information
kennethreitz committed Jan 27, 2016
2 parents b4240e6 + 2fe8e81 commit e7367c9
Showing 1 changed file with 13 additions and 18 deletions.
31 changes: 13 additions & 18 deletions docs/patterns/distribute.rst
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
.. _distribute-deployment:

Deploying with Distribute
Deploying with Setuptools
=========================

`distribute`_, formerly setuptools, is an extension library that is
commonly used to (like the name says) distribute Python libraries and
extensions. It extends distutils, a basic module installation system
`Setuptools`_, is an extension library that is commonly used to
(like the name says) distribute Python libraries and
extensions. It extends distutils, a basic module installation system
shipped with Python to also support various more complex constructs that
make larger applications easier to distribute:

Expand All @@ -28,10 +28,9 @@ are distributed with either distribute, the older setuptools or distutils.

In this case we assume your application is called
:file:`yourapplication.py` and you are not using a module, but a :ref:`package
<larger-applications>`. Distributing resources with standard modules is
not supported by `distribute`_ so we will not bother with it. If you have
not yet converted your application into a package, head over to the
:ref:`larger-applications` pattern to see how this can be done.
<larger-applications>`. If you have not yet converted your application into
a package, head over to the :ref:`larger-applications` pattern to see
how this can be done.

A working deployment with distribute is the first step into more complex
and more automated deployment scenarios. If you want to fully automate
Expand All @@ -40,9 +39,9 @@ the process, also read the :ref:`fabric-deployment` chapter.
Basic Setup Script
------------------

Because you have Flask running, you either have setuptools or distribute
available on your system anyways. If you do not, fear not, there is a
script to install it for you: `distribute_setup.py`_. Just download and
Because you have Flask running, you have setuptools available on your system anyways.
Flask already depends upon setuptools. If you do not, fear not, there is a
script to install it for you: `ez_setup.py`_. Just download and
run with your Python interpreter.

Standard disclaimer applies: :ref:`you better use a virtualenv
Expand All @@ -52,10 +51,6 @@ Your setup code always goes into a file named :file:`setup.py` next to your
application. The name of the file is only convention, but because
everybody will look for a file with that name, you better not change it.

Yes, even if you are using `distribute`, you are importing from a package
called `setuptools`. `distribute` is fully backwards compatible with
`setuptools`, so it also uses the same import name.

A basic :file:`setup.py` file for a Flask application looks like this::

from setuptools import setup
Expand Down Expand Up @@ -127,7 +122,7 @@ requirements. Here some examples::
'BrokenPackage>=0.7,<=1.0'
]

I mentioned earlier that dependencies are pulled from PyPI. What if you
As mentioned earlier, dependencies are pulled from PyPI. What if you
want to depend on a package that cannot be found on PyPI and won't be
because it is an internal package you don't want to share with anyone?
Just still do as if there was a PyPI entry for it and provide a list of
Expand Down Expand Up @@ -161,6 +156,6 @@ folder instead of copying the data over. You can then continue to work on
the code without having to run `install` again after each change.


.. _distribute: https://pypi.python.org/pypi/distribute
.. _pip: https://pypi.python.org/pypi/pip
.. _distribute_setup.py: http://python-distribute.org/distribute_setup.py
.. _ez_setup.py: https://bootstrap.pypa.io/ez_setup.py
.. _Setuptools: https://pythonhosted.org/setuptools

0 comments on commit e7367c9

Please sign in to comment.