pip установить horovod не удается на conda + OSX 10.14

Бег pip install horovod в среде Конда с установленным pytorch привело к

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

где корень проблемы в верхней части стандартного вывода является

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 ответ

CFLAGS=-mmacosx-version-min=10.9 pip install horovodВдохновленный этим, казалось бы, не связанным с Хороводом вопросом.

У этой ветки вопроса от панд есть хорошее объяснение:

Стандартная библиотека компилятора по умолчанию - libstdC++ или libC++, в зависимости от целевой версии macOS - libstdC++ для 10.8 и ниже и libC++ для 10.9 и выше. Это определяется переменной среды MACOSX_DEPLOYMENT_TARGET или параметром компилятора -mmacosx-version-min, в противном случае по умолчанию используется системная версия.

Когда distuils создает расширения в macOS, он устанавливает MACOSX_DEPLOYMENT_TARGET в версию, с которой был скомпилирован python, даже если хост-система / Xcode новее.

Последние версии Python для MacOS имеют 64-битный вариант, созданный для 10.9 (python.org), и универсальный 64/32-битный вариант для 10.6 (python.org) или 10.7 (conda). Я использую универсальный вариант conda, поэтому distutils предназначается для macOS 10.7, несмотря на то, что моя система 10.14, с Xcode 10, который не устанавливает libstdC++.

Другие вопросы по тегам