Использование через numpy.distutils#

Наследие

Этот подмодуль считается устаревшим и больше не будет получать обновления. Это также может означать, что он будет удален в будущих версиях NumPy. distutils был удалён в пользу meson см. Статус numpy.distutils и рекомендации по миграции.

numpy.distutils является частью NumPy и расширяет стандартный Python distutils модуль для работы с исходными кодами Fortran и файлами сигнатур F2PY, например, компиляция исходных кодов Fortran, вызов F2PY для создания модулей расширения и т.д.

Расширения для distutils#

numpy.distutils расширяет distutils со следующими функциями:

  • Extension аргумент class sources может содержать исходные файлы Fortran. Кроме того, список sources может содержать не более одного файла подписи F2PY, и в этом случае имя модуля расширения должно совпадать с используется в файле сигнатуры. Предполагается, что файл сигнатуры F2PY содержит ровно один python module блок.

    Если sources не содержат файла сигнатуры, то F2PY используется для сканирования исходных файлов Fortran для создания обёрток к кодам Fortran.

    Дополнительные опции для исполняемого файла F2PY можно задать с помощью Extension аргумент class f2py_options.

  • Следующие новые distutils команды определены:

    build_src

    для создания модулей расширения обёрток Fortran, среди многих других вещей.

    config_fc

    для изменения опций компилятора Fortran.

    Кроме того, build_ext и build_clib команды также улучшены для поддержки исходников на Fortran.

    Запустить

    python  file> config_fc build_src build_ext --help
    

    чтобы увидеть доступные опции для этих команд.

  • При сборке пакетов Python, содержащих исходный код на Fortran, можно выбрать различные компиляторы Fortran, используя build_ext опция команды --fcompiler=. Здесь может быть одним из следующих имен (на linux системы):

    absoft compaq fujitsu g95 gnu gnu95 intel intele intelem lahey nag nagfor nv pathf95 pg vast
    

    См. numpy_distutils/fcompiler.py для актуального списка поддерживаемых компиляторов для разных платформ, или запустите

    python -m numpy.f2py -c --backend distutils --help-fcompiler