How to solve dyld: Symbol not found - Expected in: /usr/lib/libSystem.B.dylib ( _fdopendir$INODE64 )

Viewed 3828

I searched for it, could not find much references. I guess:

dyld: Symbol not found: _fdopendir$INODE64
  Referenced from: /Users/gg4u/Sites/miniconda3/envs/meteo/bin/python
  Expected in: /usr/lib/libSystem.B.dylib

is an error related to how some libraries are compiled.

I am running a mac os 10.9.5.

I got this error after having installed fbprophet on a conda environment.

NOTE - First installation was successful.

This error first appeared when importing the fbprophet library in python.

I tried to uninstall, reinstall again, but this time error manifested also at installation.

It seems conda environment got corrupted.

Tried to look for earlier versions of fbprophet, could not find but the 0.5 : https://anaconda.org/conda-forge/fbprophet

Please advise what this error could be and how to solve it.

Maybe could I manually linked it ? Could I download an upgraded version of /usr/lib/libSystem.B.dylib ?

1 Answers

Possible Cause: Channel Mixing

Missing symbols is a typical outcome of improper channel mixing. Conda Forge (conda-forge) and Anaconda (defaults) channels use different build stacks and this can lead to references to symbols that don't translate across channels. Since you are using Conda Forge to source fbprophet, you should follow Conda Forge's recommended configuration, which sets channel_priority: strict and places conda-forge channel before defaults.

After making these changes, it may be sufficient to run conda update --all in the environment (though this may pull newer versions than you want). Otherwise, I would probably dump the environment with conda env export --no-builds, then recreate after making sure the channel priority is correct in the YAML.

Related