跨平台編譯#

跨平台編譯是一個複雜的主題,我們目前只在此處新增一些可能有用的提示。截至 2023 年 5 月,已知基於 crossenv 的跨平台編譯可以運作,例如在 conda-forge 中使用的方式。不使用 crossenv 的跨平台編譯需要一些手動覆寫。您可以透過傳遞選項給 meson setup,並經由 meson-python 來指示這些覆寫。

所有已知成功跨平台編譯 SciPy 的發行版都使用 python -m build (pypa/build),但使用 pip 也應該是可行的。以下是這些發行版上 SciPy 的「建置配方」連結

另請參閱 Meson 關於跨平台編譯的文件,以了解您可能需要傳遞給 Meson 以成功進行跨平台編譯的選項。

一個常見的小問題是 numpypythran 需要執行 Python 程式碼才能取得它們的 include 目錄。這往往不太順利,可能會意外地從建置(原生)Python 而不是主機(跨平台)Python 中取得套件,或者需要 crossenv 或 QEMU 來執行主機 Python。為了避免這個問題,請在您的跨平台檔案中指定相關目錄的路徑

[constants]
sitepkg = '/abspath/to/host-pythons/site-packages/'

[properties]
numpy-include-dir = sitepkg + 'numpy/core/include'
pythran-include-dir = sitepkg + 'pythran'

如需更多詳細資訊以及關於跨平台編譯的目前狀態,請參閱