Skip to content

Error in importing python module that uses fftw3 library: undefined symbol: dfftw_destroy_plan_ #291

@jishnub

Description

@jishnub

I have a module shtools that I am trying to import in julia. It is a collection of fortran codes that comes with a python f2py wrapper. I am being able to import it correctly in python, but using @pyimport to import it in julia fails. I am using julia 0.4.5.

$ python -c "import pyshtools as shtools"
loading shtools documentation
$ julia
julia> using PyCall
julia> @pyimport pyshtools
ERROR: PyError (:PyImport_ImportModule) <type 'exceptions.ImportError'>
ImportError('/home/jishnu/lib/SHTOOLS-3.0/pyshtools/_SHTOOLS.so: undefined symbol: dfftw_destroy_plan_',)
  File "/home/jishnu/lib/SHTOOLS-3.0/pyshtools/__init__.py", line 31, in <module>
    load_documentation()
  File "/home/jishnu/lib/SHTOOLS-3.0/pyshtools/__init__.py", line 13, in load_documentation
    from . import _SHTOOLS

 [inlined code] from /home/jishnu/.julia/v0.4/PyCall/src/exception.jl:81
 in pyimport at /home/jishnu/.julia/v0.4/PyCall/src/PyCall.jl:341

From what I can see, the path to libfftw3.so is present in LD_LIBRARY_PATH. libfftw3.so is also present in julia's lib directory.

$ python -c 'import sys,os;print filter(lambda x: os.path.exists(x) and "libfftw3.so" in os.listdir(x),sys.argv[1].split(":"))' $LD_LIBRARY_PATH
['/home/apps/fftw-3.2/lib']

I have built shtools and pycall using the same version of python (version 2.7 from anaconda2). Is there a way to tell julia how to find this library?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions