我有一个主包(比如包 A),我想有一个可选的依赖项。我知道我可以使用
extras_require
来定义可选的包依赖项,但是我希望这个可选的依赖项使用 Extension
模块来使用带有附加数据文件的 f2py 进行构建。有没有办法定义一个extras_require
语句来获取扩展模块?换句话说,当我运行我的 setup.py
文件时,我可以选择指定我想要安装我的风模型,然后它使用 f2py 编译我的 Fortran 代码。如果不需要可选的风模型依赖项,则 setup.py 文件会正常运行并且不会编译 fortran 代码(如果用户没有安装 fotran 编译器并且不需要此依赖项,则很有用)。
目前我能想到的唯一方法是用风模型创建一个单独的包,并将这个包放在主包的
extras_require
中。这样做的缺点是,用户必须为风模型运行一个单独的setup.py
文件,然后返回到主包并运行主setup.py
。对我来说这是不可取的,感觉应该有办法做到这一点。我已经看到了这个问题,但是如果可以下载 cython 扩展,则下载它而不是用户需要指定的 cython 扩展。