[Distutils] Optional C extensions in packages
jim at zope.com
Thu Feb 1 13:11:16 CET 2007
Phillip J. Eby wrote:
> I'm thinking setuptools should allow you to specify that one or more C
> extensions in a project are optional.
> At minimum, there would then be a command-line option you could give to
> easy_install to say, "don't build any optional extensions", so if you don't
> have a compiler or need a cross-platform egg, you can skip those extensions.
> There would also need to be a way to specify this when using the regular
> build commands.
> This feature would address projects that include optional C versions of
> certain code, that can fall back to pure Python implementations.
> It would not address projects that have C extensions requiring external
> libraries that might or might not exist. (Such as Twisted, for instance,
> but Twisted falls into the category of projects requiring "extreme
> measures" to be supported anyway.)
> Comments, anyone?
I like the goal, since most of our extensions are in this category,
however, I have a feeling that this use case might be better served
by packaging the extensions as separate distributions.
Once concern I have is that I think I'd want an egg with the extensions
and the egg without the extensions to have different names, and perhaps
different requirements. Of course, the names would be different
because an egg with a C extension would be platform dependent and an
egg without would be platform independent. What if both a
platform-independent egg and a platform-dependent egg were available?
Which would take precedence? I think they have the same precedence now.
I think I'd be +1 if platform-dependent eggs were prefered over
Jim Fulton mailto:jim at zope.com Python Powered!
CTO (540) 361-1714 http://www.python.org
Zope Corporation http://www.zope.com http://www.zope.org
More information about the Distutils-SIG