python — Ссылка общей библиотеки в f2py

У меня есть общая библиотека Fortran, указанная с помощью:

C FILE: OTHER.F
SUBROUTINE OTHER(FUN)
EXTERNAL FUN
INTEGER I
DO I=0,5
PRINT *, FUN(I)
ENDDO

END SUBROUTINE
C END OF FILE OTHER.F

Который я составил следующим образом: gfortran -shared -O2 other.f -o libother.so -fPIC

У меня сейчас другой модуль:

C FILE: CALLBACK.F
SUBROUTINE FOO(FUN,R)
EXTERNAL FUN
INTEGER I
REAL*8 R
R = 0D0
DO I=-5,5
PRINT *, FUN(I)
R = R + FUN(I)
ENDDO

CALL OTHER(FUN)
END SUBROUTINE
C END OF FILE CALLBACK.F

И я хочу скомпилировать этот модуль как модуль Python, используя f2py. Чтобы достичь этого, я ввел:

f2py -m callback -h callback.pyf callback.f

с последующим:

f2py -c callback.pyf callback.f -L. -lother

Затем я использую интерпретатор Python для запуска:

import callback
callback.foo(lambda x: 1)

Ожидаемое поведение:

  1. выведите «1» одиннадцать раз (б / с foo)
  2. напечатайте «1» шесть раз (б / к звонка other внутри foo)
  3. возврат «11»

Наблюдаемое поведение вместо этого:

ImportError: libother.so: cannot open shared object file: No such file or directory

Если я сделаю nm callfun.so, Я могу увидеть это other не определено

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]