【发布时间】:2011-05-02 16:22:39
【问题描述】:
我创建了一个 C 扩展,我想在我的 Python 包(使用 setuptools)中启用它,前提是传入命令行选项。最简单的方法是什么?
我似乎找不到任何直接的解决方法。
【问题讨论】:
标签: python setuptools cython python-c-extension
我创建了一个 C 扩展,我想在我的 Python 包(使用 setuptools)中启用它,前提是传入命令行选项。最简单的方法是什么?
我似乎找不到任何直接的解决方法。
【问题讨论】:
标签: python setuptools cython python-c-extension
实际上有一个名为“功能”的分发/设置工具功能可用于此目的。
它被明确设计为让 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。
【讨论】: