Утилита устаревания FORTRAN в Python. Можно ли использовать `setuptools` и` numpy.distutils`?

Я пытаюсь сделать дистрибутив пакета python для некоторых популярных кодов Fortran в моей области. Я хочу, чтобы он использовал самый стандартный подход с файлом setup.py . Связанный вопрос был полезен для изучения того, как переносить расширения Fortran .

При использовании этого подхода я заметил некоторое запутанное поведение при смешивании setuptools и numpy.distutils . Неправильно ли это смешивать эти два? По состоянию на 2015 год предпочтительнее использовать setuptools как можно больше.

Тем не менее, я хотел бы строить расширения Fortran таким образом, который совместим с numpy. Поэтому я хотел бы импортировать из numpy.distutils чтобы получить Extension и setup .

Я использую следующий базовый подход:

 from setuptools.command.develop import develop from numpy.distutils.core import Extension, setup ext_modules=[Extension("my_package.fortran_mod", sources=['src/fortran_mod.f'])] class MyDevelop(develop): def run(self): my_script() develop.run(self) setup( ... ext_modules=ext_modules, cmdclass={'develop':MyDevelop}) 

Это похоже на работу, но у меня есть вопросы.

  1. Является ли вообще хорошей практикой смешать setuptools и numpy.distribute ?
  2. Является ли порядок, который я им импортирую, имеет значение? Должен ли я всегда импортировать setuptools первую очередь?
  3. Есть ли официальное обновленное руководство по расширению упаковки для numpy ? Возможно, даже один с некоторыми расширениями Фортрана?

Некоторые ссылки

http://www.fortran90.org/src/best-practices.html#interfacing-with-python

Interesting Posts

Сделайте часть названия matplotlib полужирным шрифтом и другим цветом

Именованная группа регулярных выражений "(? P <имя_группы> regexp)": что означает "P"?

Как узнать, отсоединен ли канал paramiko SSH?

Функции сетки сетки в Python (meshgrid mgrid ogrid ndgrid)

Проверка того, находятся ли какие-либо элементы в одном списке в другом

Python – абсолютный импорт из подпапки

Чат комет сайт с использованием python и скрученный

Часть запроса анализа из URL-адреса

Лучшая практика для написания общих числовых функций, которые работают как с ndarray, так и с MaskedArray

потоковая обработка и производительность python?

Проблемы, связанные с lambda для подачи заявки на панды DataFrame

Как конкатенировать два элемента списка в Python?

В чем разница между ошибкой синтаксиса и ошибкой во время выполнения?

Как я могу контролировать, какой дистрибутив Python для пакета установить пакет, когда у меня есть Python 2, Python 3 и Anaconda на моем компьютере?

Почему значение с плавающей запятой 4 * 0,1 выглядит красиво в Python 3, но 3 * 0,1 – нет?

Python - лучший язык программирования в мире.