1

http://software-lisc.fbk.eu/bdg/ Я пытаюсь запустить код BdG-TMAT. В этой папке находятся и файлы Fortran, и файлы Python, поскольку в основном файле запуска BDG_K.py используются некоторые функции Fortran. Поэтому для запуска кода на языке фортран я использую конвертер f2py, который конвертирует tmatf.f90 в tmatf.so. f2py устанавливается автоматически с numpy. Из make BdG-Tmat я получаю следующую ошибку из-за проблемы с 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

Я не уверен, как это исправить, хотя я проверил crackfortran.py Пожалуйста, помогите.

Заранее большое спасибо.

1 ответ1

3

Эта ошибка вызвана тем, as стала ключевым словом в Python 2.6 (см. Также http://bugs.python.org/issue8031). Текущая версия numpy больше не содержит эту ошибку:

https://github.com/numpy/numpy/blob/master/numpy/f2py/crackfortran.py

(Предполагаемая) строка с ошибками переместилась на строку 2126 и теперь читает args = block['args'] .

Поэтому решение будет заключаться в том, чтобы получить последнюю версию numpy или версию Python до 2.6.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .