如何解决 dyld: Symbol not found - 预期在:/usr/lib/libSystem.B.dylib (_fdopendir$INODE64)

use*_*883 6 python macos gcc conda

我搜索了它,找不到太多参考资料。我猜:

dyld: Symbol not found: _fdopendir$INODE64
  Referenced from: /Users/gg4u/Sites/miniconda3/envs/meteo/bin/python
  Expected in: /usr/lib/libSystem.B.dylib
Run Code Online (Sandbox Code Playgroud)

是与某些库的编译方式有关的错误。

我正在运行 mac os 10.9.5。

在 conda 环境中安装 fbprophet 后出现此错误。

注意 - 首次安装成功。

这个错误是在python中导入fbprophet库的时候第一次出现的。

我尝试卸载,重新安装,但这次安装时也出现错误。

似乎 conda 环境已损坏。

试图寻找 fbprophet 的早期版本,但找不到 0.5:https ://anaconda.org/conda-forge/fbprophet

请告知此错误可能是什么以及如何解决它。

也许我可以手动链接它?我可以下载 /usr/lib/libSystem.B.dylib 的升级版本吗?

mer*_*erv -1

可能的原因:通道混合

丢失符号是不正确的通道混合的典型结果。Conda Forge ( conda-forge ) 和 Anaconda ( defaults ) 通道使用不同的构建堆栈,这可能会导致引用不能跨通道转换的符号。由于您使用 Conda Forge 进行来源fbprophet,因此您应该遵循Conda Forge 的推荐配置,该配置将conda-forge通道设置channel_priority: strict并放置在默认值之前。

conda update --all进行这些更改后,在环境中运行可能就足够了(尽管这可能会拉出比您想要的更新的版本)。否则,我可能会使用 转储环境conda env export --no-builds,然后在确保 YAML 中的通道优先级正确后重新创建。