【问题标题】:setup.py build that doesn't reinvoke compiler on every C source file / incremental buildsetup.py 构建不会在每个 C 源文件/增量构建上重新调用编译器
【发布时间】:2023-12-20 01:36:01
【问题描述】:

有没有办法使用 C 扩展运行 python setup.py build,而不涉及无条件地在 Python 项目已知的每个 C 文件上重新运行编译器?

【问题讨论】:

    标签: python setuptools


    【解决方案1】:

    我们已经成功地将ninja 集成到我们的 setup.py 中。 https://github.com/onnx/onnx/commit/d1bfcebd9c21a836d88b63ea8715c7a5b137ef32

    它动态创建 ninja 构建文件并在链接阶段调用 ninja。

    【讨论】:

    • 你应该链接到一个特定的提交,否则链接中的行号会漂移。