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 Linkshttps: //www.youtube.com/watch? v = R4yB-8tB0J0
http: //www.fortran90.org/src/best-practices.html#interfacing-with-pytho