[Distutils] C extension dependencies

Collin Anderson cmawebsite at gmail.com
Tue Sep 9 23:22:57 CEST 2014


Hi All,

pip is great for installing things, except when there are C
extensions. If I run "pip install pillow" out of the box, I get a
bunch of information showing up on the console, with an error in there
somewhere. The problem is that I don't have the necessary header files
and libraries installed, but the error message doesn't really say
that. Having ran into the problem enough, I have now learned I need to
go to pillow's website and read up on what I need to install.

Is there any way packages could list external dependencies? Maybe
something like requires = ['Python.h', 'somethingelse.h']. I realize
there's not much that pip can do about it automatically, but maybe pip
could try to figure out if you have those files around and warn if it
doesn't see them.

Eventually, I could imagine a distro-specific tool coming along that
could more-reliably translate those dependencies into system packages.
Something like: yum whatprovides '/usr/include/*/Python.h'

But, for starters, I think somehow listing external dependencies would
be helpful.

Ideally it would be great if "pip install pillow" Just Worked, though
I imagine that would be pretty impossible. We would likely need to
start packaging the c dependencies on pypi, and would probably start
approximating something like Gentoo Portage, which I assume is a road
we don't want to go down.

Is there anything we can do to improve the situation?

Thanks,
Collin

(Sorry if this is a double-email for anyone)


More information about the Distutils-SIG mailing list