Verpackung von Fortran in Python. Ist es in Ordnung, setuptools und numpy.distutils zu verwenden?

Ich versuche, eine Python-Paketverteilung für einige in meinem Bereich beliebte Fortran-Codes zu erstellen. Ich möchte, dass der Standardansatz mit einem @ verwendet wirsetup.py Datei. Die entsprechende Frage war hilfreich zum Lernen von wie man Fortran-Erweiterungen einwickelt.

Wenn ich diesen Ansatz verwende, ist mir beim Mischen ein verwirrendes Verhalten aufgefallensetuptools undnumpy.distutils. Ist es eine schlechte Übung, beides zu mischen? Ab 2015 scheint es vorzuziehen, @ zu verwendsetuptools so viel wie möglich

Jedoch, ich würde gerne bauenFortran -Erweiterungen so, dass sie mit @ kompatibel sinumpy. Also ich würde gerne importieren ausnumpy.distutils bekommenExtension undsetup.

Ich benutze den folgenden grundlegenden Ansatz:

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})

Dies scheint zu funktionieren, aber ich habe Fragen.

Ist es allgemein eine gute Praxis, @ zu mischsetuptools undnumpy.distribute? Ist die Reihenfolge, in der ich sie importiere, wichtig? Soll ich immer @ importiersetuptools zuerst Gibt es ein offizielles aktuelles Tutorial für die Erweiterung von @ Paketnumpy? Vielleicht sogar eine mit einigen Fortran-Erweiterungen zur Diskussion?Einige Links

https: //www.youtube.com/watch? v = R4yB-8tB0J0

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage