2014-12-04 1 views
0

Я импортировать библиотеку Python «Интерфейс» находится в подпапках «Fortran_Interface» (обертывают f2py):Python импорт из вложенной - Fortran .so в .so из f2py - ImportError (изображение не найден)

import Interface 

'Interface.so' был составлен на ссылку Фортрана Lib 'libsolver.so'. Компиляция была сделана с командами

gfortran -shared -O2 -o libsolver.so -fPIC Solver/Module_Solver.f90 
f2py -c --fcompiler=gfortran -L. -I. -lsolver -m Interface Interface/Module_Interface.f90 

Я получаю ошибку

ImportError: dlopen(/Users/gmueller/Workspace/PySpinX_G/Fortran_Interface/Interface.so, 2): Library not loaded: libsolver.so 
    Referenced from: /Users/gmueller/Workspace/PySpinX_G/Fortran_Interface/Interface.so 
    Reason: image not found 

я могу импортировать библиотеку из внутри каталога библиотеки, но не из приведенной выше папки. Мне кажется, это связано с тем, что «Interface.so» связан с относительным pat h к 'libsolver.so', , который использует python из каталога выше.

Я был бы благодарен за любые идеи о том, как это решить. Компиляция .so с абсолютными путями не работаем, а также вызов сценарий питона, который находится в директории библиотеки из моего основного сценария ...

Редактировать: с помощью символической ссылки из папки моего Python сценария к lib solver.so, он работает.

ответ