[Distutils] How to implement ‘setup.py’ functionality that itself needs third-party distributions

Ben Finney ben+python at benfinney.id.au
Wed Jan 21 03:28:30 CET 2015


Donald Stufft <donald at stufft.io> writes:

> setuptools does not offer the ability to have only build time entry
> points, it assumes the installed project supplies those entry points.

I'm now convinced that Setuptools entry points are not suitable to this
purpose.

> spin it out into it’s own thing that can be installed on it’s own.

Presumably this leads back to ‘setup_requires’ and ‘install_requires’?

> The right way to handle this is to either import it in setup.py and do
> it there

I'd love to. How can I ‘import docutils’ in ‘setup.py’ without creating
a circular dependency:

* The correct way to get Docutils installed is to run ‘setup.py’ and
  have it install the dependencies.

* Running ‘setup.py’ performs ‘import docutils’, and so will fail if
  Docutils is not already installed.

What I need is a way to express “ensure Docutils is installed before
continuing with other Setuptools actions” in ‘setup.py’. I don't know of
a neat way to tell Setuptools that.

-- 
 \         “I'm beginning to think that life is just one long Yoko Ono |
  `\   album; no rhyme or reason, just a lot of incoherent shrieks and |
_o__)                                      then it's over.” —Ian Wolff |
Ben Finney



More information about the Distutils-SIG mailing list