setup.py needs code from another egg to build
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Buildout |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
I've been trying to build SciPy using buildout. SciPy has a setup.py which uses distutils infrastructure provided by NumPy. SciPy won't install
without NumPy already available on the Python path as it needs it for its build infrastructure. NumPy, incidentally, itself does
work with buildout, using its own distutils logic placing it on the path through hackery.
One way to resolve this particular problem is to let the developer place an egg on the path to satisfy the import requirements of another package's setup.py. I think such an option is currently missing.
Aside: Unfortunately I keep running into packages that do setup.py hackery like this. They work outside of buildout, but fail in a buildout setup. One way to deal with this problem is to evangelize clean package constructions. It's hard to always get a response though. And some packages just *do* require quite complicated build procedures and it's hard to convince the authors to rewrite them just to please buildout users. I dream of some kind of "magic mode" for buildout that does hackery like this automatically to get an egg built "by whatever means necessary".
SciPy and numpy can be found here:
Note that SciPy in particular has quite a few build requirements (besides numpy), so be sure to read its INSTALL.txt if you want to try it out.
Changed in zc.buildout: | |
status: | Unconfirmed → Confirmed |
On Apr 25, 2007, at 8:49 PM, Martijn Faassen wrote:
> Public bug reported:
>
> I've been trying to build SciPy using buildout. SciPy has a
> setup.py which uses distutils infrastructure provided by NumPy.
> SciPy won't install
> without NumPy already available on the Python path as it needs it
> for its build infrastructure. NumPy, incidentally, itself does
> work with buildout, using its own distutils logic placing it on the
> path through hackery.
I don't suppose SciPy uses the build_requires setup keyword.
Perhaps the custom and develop recipes should grow a setup-requires
to name distributions that must be in the working set when building a
distribution. Do you think that would address this situation?
Jim
-- www.python. org www.zope. com http:// www.zope. org
Jim Fulton mailto:<email address hidden> Python Powered!
CTO (540) 361-1714 http://
Zope Corporation http://