我创建了一个 C 扩展,我想在我的 Python 包中启用它(使用 setuptools),只有在传入命令行选项时。最简单的方法是什么?
我似乎找不到任何直接的方法来解决这个问题。
我创建了一个 C 扩展,我想在我的 Python 包中启用它(使用 setuptools),只有在传入命令行选项时。最简单的方法是什么?
我似乎找不到任何直接的方法来解决这个问题。
实际上有一个名为“功能”的分发/设置工具功能可用于此目的。它被明确设计为让 setup.py 根据命令行选项--with-xxx
做不同的事情。--without-xxx
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。