Использование через numpy.distutils
numpy.distutils является частью NumPy, расширяющей стандартный Python distutils для работы с исходными кодами Fortran и файлами сигнатур F2PY, например, для компиляции исходных кодов Fortran, вызова F2PY для создания модулей расширения и т. д.
Пример
Рассмотрим следующий файл setup:
from __future__ import division, absolute_import, print_function
from numpy.distutils.core import Extension
ext1 = Extension(name = 'scalar',
sources = ['scalar.f'])
ext2 = Extension(name = 'fib2',
sources = ['fib2.pyf', 'fib1.f'])
if __name__ == "__main__":
from numpy.distutils.core import setup
setup(name = 'f2py_example',
description = "F2PY Users Guide examples",
author = "Pearu Peterson",
author_email = "pearu@cens.ioc.ee",
ext_modules = [ext1, ext2]
)
# End of setup_example.py
Выполнение команды
python setup_example.py build
построит два модуля расширения scalar и fib2 в директорию сборки.
numpy.distutils расширяет distutils следующими особенностями:
-
Аргумент класса
Extensionsourcesможет содержать исходные файлы Fortran. Кроме того, списокsourcesможет содержать не более одного файла сигнатуры F2PY, а затем имя модуля расширения должно совпадать с именем<modulename>, используемым в файле сигнатуры. Предполагается, что файл сигнатуры F2PY содержит ровно одинpython moduleблок.Если
sourcesне содержит файлов сигнатуры, то F2PY используется для сканирования файлов исходных кодов Fortran в поисках сигнатур процедур для построения обёртки над кодами Fortran.Дополнительные параметры для процесса F2PY могут быть заданы с помощью аргумента класса
Extensionf2py_options. -
Определены следующие новые команды
distutils:-
build_src -
для построения модулей расширения обёртки Fortran, помимо прочего.
-
config_fc -
для изменения параметров компилятора Fortran
а также команды
build_extиbuild_clibрасширены для поддержки исходных кодов Fortran.Выполнение команды
python <setup.py file> config_fc build_src build_ext --help
покажет доступные параметры для этих команд.
-
-
При построении пакетов Python, содержащих исходные коды Fortran, можно выбрать разные компиляторы Fortran, используя команду
build_extс параметром--fcompiler=<Vendor>. Здесь<Vendor>может быть одним из следующих имён:absoft sun mips intel intelv intele intelev nag compaq compaqv gnu vast pg hpux
См.
numpy_distutils/fcompiler.pyдля актуального списка поддерживаемых компиляторов или выполнитеf2py -c --help-fcompiler
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/f2py/distutils.html