Skip to content

Conflict between julia and python binaries/artifacts #397

@BSchilperoort

Description

@BSchilperoort

Affects: JuliaCall

Describe the bug
When using a conda/mamba environment and juliacall I encountered an issue when NetCDF files are read by the julia code. When trying to read the files the julia code would raise the following error and crash the kernel:

symbol lookup error: .../.julia/artifacts/*/lib/netcdf.so: undefined symbol: H5Pset_all_coll_metadata_ops

It turns out that this error only occured if python packages depending on netCDF were imported.

For example, the following code would crash:

import esmpy
from juliacall import Main as jl

jl.seval("using NCDatasets")
ds = jl.Dataset("file.nc")

While this runs fine:

from juliacall import Main as jl

jl.seval("using NCDatasets")
ds = jl.Dataset("file.nc")

Workaround:
I managed to avoid this crash by ensuring that the Julia and Python packages used the exact same version of the netcdf5 and hdf5 binaries, in which case things went fine.
However, this can be very challenging to do.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions