http://software-lisc.fbk.eu/bdg/ J'essaie d'exécuter le code BdG-TMAT. Le dossier contient les fichiers Fortran et Python car le fichier d'exécution principal BDG_K.py utilise certaines fonctions fortran. Donc, pour exécuter le code fortran, j'utilise un convertisseur f2py qui convertit tmatf.f90 en tmatf.so. f2py est automatiquement installé avec numpy. De marque de BdG-Tmat, j'obtiens l'erreur suivante en raison d'un problème avec f2py:
- f2py -lgsl -llapack -lcblas -c potsub.f90 potsubi.o -m potsub
Traceback (most recent call last):
File "/usr/local/bin/f2py", line 3, in <module>
import f2py2e
File "/usr/local/lib/python2.7/dist-packages/f2py2e/__init__.py", line 10, in <module>
import f2py2e
File "/usr/local/lib/python2.7/dist-packages/f2py2e/f2py2e.py", line 26, in <module>
import crackfortran
File "/usr/local/lib/python2.7/dist-packages/f2py2e/crackfortran.py", line 1588
as = b['args']
^
SyntaxError: invalid syntax
make: *** [potsub.so] Error 1
Je ne sais pas comment corriger cela, même si j'ai vérifié crackfortran.py S'il vous plaît aider.
Merci beaucoup d'avance.
Réponses:
Ce bug est causé par
as
devenir un mot-clé dans Python 2.6 (voir aussi http://bugs.python.org/issue8031 ). La version actuelle de numpy ne contient plus ce bogue:https://github.com/numpy/numpy/blob/master/numpy/f2py/crackfortran.py
La ligne en cause (supposée) a été déplacée à la ligne 2126 et se lit maintenant
args = block['args']
.La solution consistera donc à obtenir une version récente de numpy ou une version antérieure à la version 2.6 de Python.
la source