我已經創建了一個C擴展,只有在傳遞了命令行選項時,我才能在我的Python包(使用setuptools)中啓用它。最簡單的方法是什麼?爲python包製作可選C擴展的最簡單方法是什麼?
我似乎無法找到任何直接的方法來解決這個問題。
我已經創建了一個C擴展,只有在傳遞了命令行選項時,我才能在我的Python包(使用setuptools)中啓用它。最簡單的方法是什麼?爲python包製作可選C擴展的最簡單方法是什麼?
我似乎無法找到任何直接的方法來解決這個問題。
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。
實際上,有一個分發/ setuptools的功能,稱爲可用於這個「功能」。 它被明確設計爲讓setup.py根據--with-xxx
和--without-xxx
命令行選項做不同的事情。