Я пытаюсь сделать дистрибутив пакета python для некоторых популярных кодов Fortran в моей области. Я хочу, чтобы он использовал самый стандартный подход с файлом setup.py
. Связанный qustion был полезен для обучения для того, чтобы обернуть расширения 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})
Это похоже на работу, но у меня есть вопросы.
- Как правило, рекомендуется смешивать
setuptools
иnumpy.distribute
? - Является ли порядок, который я им импортирую, имеет значение? Должен ли я всегда импортировать
setuptools
первым? - Есть ли официальный обновленный учебник по расширению упаковки для
numpy
? Возможно, даже один с некоторыми расширениями Фортрана?
Некоторые ссылки
https://www.youtube.com/watch?v=R4yB-8tB0J0
http://www.fortran90.org/src/best-practices.html#interfacing-with-python