views:

41

answers:

1

I've created a C extension that I'd like to enable in my Python package (using setuptools) only if a command line option is passed in. What is the easiest way to do this?

I can't seem to find any straightforward ways of going about this.

+1  A: 
ext_modules = []
if '--add-this' in sys.argv:
    ext_modules.append(Extension(...))
    sys.argv.remove('--add-this')
setup(...
      ext_modules = ext_modules
)

This is hacky, but might be easiest. A more advanced approach would be to extend the Distribution class to support a flag, say --with-modules and then customize ext_modules inside finalize_options.

Martin v. Löwis