我已经创建了一个C扩展,只有在传入命令行选项时才能在我的Python包中启用(使用setuptools)。最简单的方法是什么?
我似乎无法找到任何直接的解决方法。
答案 0 :(得分:14)
实际上有一个名为“Features”的分发/设置工具功能可用于此目的。
它明确地设计为让setup.py根据--with-xxx
和--without-xxx
命令行选项执行不同的操作。
答案 1 :(得分:3)
ext_modules = []
if '--add-this' in sys.argv:
ext_modules.append(Extension(...))
sys.argv.remove('--add-this')
setup(...
ext_modules = ext_modules
)
这很hacky,但可能最容易。更高级的方法是扩展Distribution类以支持标志,比如--with-modules
,然后在finalize_options中自定义ext_modules。