pip install horovod在conda + OSX 10.14上失败

时间:2019-03-22 17:34:40

标签: python pytorch horovod

在装有pytorch的conda环境中运行pip install horovod导致

error: None of TensorFlow, PyTorch, or MXNet plugins were built. See errors above.

stdout顶部附近的根本问题是

ld: library not found for -lstdc++ clang: error: linker command failed with exit code 1 (use -v to see invocation) INFO: Unable to build PyTorch plugin, will skip it.

1 个答案:

答案 0 :(得分:0)

CFLAGS=-mmacosx-version-min=10.9 pip install horovod,是受到与此看似无关的Horovod issue的启发。

This issue thread from pandas有一个很好的解释:

  

编译器标准库默认为libstdc ++或libc ++,具体取决于目标macOS版本-libstdc ++适用于10.8及更低版本,而libc ++适用于10.9及更高版本。这取决于环境变量MACOSX_DEPLOYMENT_TARGET或编译器选项-mmacosx-version-min,否则默认为系统版本。

     

distuils在macOS上构建扩展时,即使主机系统/ Xcode是较新的,也会将MACOSX_DEPLOYMENT_TARGET设置为python编译时使用的版本。

     

最近的python macOS版本具有为10.9(python.org)构建的仅64位变体,以及为10.6(python.org)或10.7(conda)构建的通用64/32位变体。我正在运行conda通用变体,因此distutils的目标是macOS 10.7,尽管我的系统是10.14,但Xcode 10并未安装libstdc ++。