Je compile avec succès mon sous-routine Fortran avec f2py. Cependant, un dossier est créé ainsi qu'un fichier pyd.
Si je ne place pas le fichier pyd créé dans le dossier généré, j'obtiens cette erreur
ImportError: DLL load failed: The specified module could not be found.
Si je place le fichier .pyd généré dans le dossier généré, mon python script s'exécute et l'importation semble fonctionner. Cependant, si j'exécute print(energy_f2py.__doc__)
None
est la sortie, et quand j'essaie d'utiliser le sous-programme, j'obtiens une erreur AttributeError: module 'energy_f2py' has no attribute 'potential_3'
potential_3
est le nom de la subroutine
à l'intérieur de energy_f2py.f90
J'ai aussi essayé de faire energy_f2py.f90
un module contenant la sous-routine, sans aucune différence dans les résultats.
Voici le fichier pyd qui est généré energy_f2py.cp36-win_amd64.pyd
. J'utilise la ligne de commande de Pycharm (Windows 10 64 bit) pour compiler le fichier Fortran en utilisant la méthode suivante
-
f2py -c -m energy_f2py energy_f2py.f90
-
python -m numpy.f2py -c -m energy_f2py energy_f2py.f90
La même chose se produit.
Il me semble bizarre que le fichier pyd soit créé ainsi qu'un dossier, voir l'image ci-dessous.
Je suis bloqué à ce stade... il semble qu'il y ait 95% du chemin à parcourir pour travailler...
Enfin, cet autre poste proposait une solution consistant à donner des noms différents aux modules Python et Fortran. J'ai essayé cela, et cela n'a pas fait de différence non plus.