Не удается импортировать фортран-подпрограмму в python - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь импортировать подпрограмму фортрана в код Python. Следуя этому руководству https://notmatthancock.github.io/2017/02/10/calling-fortran-from-python.html Я добавил следующую строку в мой код Fortran:

!f2py intent(in) :: ear,ne,parames,ifl
!f2py intent(out) photar,photer

Однако, когда я пытаюсь использовать f2py -c fireball_ES_param.f -m fireball для создания fireball.so для импорта в мой код Python, я получаю несколько сотен предупреждений, которые могут быть проблемой, но я не уверен: https://www.4shared.com/s/f2ynHZ_Wjda (это слишком долго будет публиковаться здесь).

В любом случае файл fireball.cpython-34m.so создается, но когда я пытаюсь импортировать его из python, я получаю:

$ python

Python 2.7.6 (default, Nov 13 2018, 12:45:42)  [GCC 4.8.4] on
linux2 Type "help", "copyright", "credits" or "license" for more
information.
>>> import fireball Traceback (most recent call last):
File "<stdin>", line 1, in <module> ImportError:
  No module named fireball

Я пытался:

import sys

sys.path.append('/path/to/folder/containing/fireball.cpython-34m.so')

но получил тот же результат. Я не уверен, есть ли проблема с созданием fireball.so или с import.

1 Ответ

0 голосов
/ 04 июня 2019

f2py ссылки на Python 3.4 (отсюда 34 в fireball.cpython-34m.so), но python3 на самом деле является версией 3.6 (см. Последний комментарий).

Ваши варианты:

  • Начните свойпрограмма с Python 3.4, которая должна быть доступна как python3.4
  • Обновите f2py до Python 3.6.Если вы установили через pip, pip install --user -U numpy должно подойти.Затем перестройте расширение.
...