let me use setup_requires somehow so I can have abstractions in setup.py
See original GitHub issueThe recommended mechanism for determining a project’s version at setup time is completely ridiculous, and determining your own version is far from the most complicated thing that one might wish to do at setup / build time.
For years, I’ve wanted to write some abstractions for Twisted plugin developers to be able to properly install plugins without hand-crafting a solution in every single setup.py, and for years we’ve been stymied by the lack of any mechanism for setup.py itself to depend upon or import things.
The setup_requires
field ostensibly solves this problem, except for the fact that it doesn’t actually work. I can’t figure out why it doesn’t work, really, or how you’re actually supposed to use it. It appears to invoke easy_install
? It also appears to install the dependencies multiple times, but also not re-run setup.py
to get correct information after they’ve been installed.
In the meanwhile, should I be looking to create a tool which, instead, generates a setup.py
automatically?
(This is probably actually a distutils or setuptools bug, but I couldn’t figure out which of the 9 bug trackers those projects have variously used in their forks and external maintenance and suchlike to use. But there’s also some involvement from pip
here, like, what the heck is going on with the easy_install
ed eggs of things I have perfectly good wheels of in my cache already…)
Issue Analytics
- State:
- Created 9 years ago
- Comments:24 (17 by maintainers)
Top GitHub Comments
Right, the imports themselves will work, but you can’t use those imports to pass anything into the
setup()
function. So it’s not generally useful.Closing this as a duplicate of #3691, which is the mechanism we will use to support this feature.