Ansible Installation -clang: ошибка: неизвестный аргумент: '-mno-fused-madd'

Итак, я обнаружил некоторые другие ошибки лязга здесь, которые кажутся чем-то похожими, однако, исправления не применимы к моей ситуации.

Я использую OSX Mavericks, и мы пытаемся установить Ansible. Мне нужно правильно установить pip, но когда я пытаюсь установить Ansible, я получаю эту ошибку лязга. Сначала мы подумали, что это может быть проблема с версией, поэтому я переустанавливал gcc46 после появления той же самой ошибки с gcc49, но я все еще получаю ошибку.

Кто-нибудь знает, как это исправить?

Мой полный отчет об ошибках из файла журнала pip.log выглядит следующим образом:

cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -Wall -Wstrict-prototypes -Wshorten-64-to-32 -fwrapv -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/MD2.c -o build/temp.macosx-10.9-intel-2.7/src/MD2.o

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

clang: note: this will be a hard error (cannot be downgraded to a warning) in the future

error: command 'cc' failed with exit status 1

----------------------------------------
Cleaning up...
  Removing temporary dir /private/tmp/pip_build_root...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/private/tmp/pip_build_root/pycrypto/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-_7evji-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /private/tmp/pip_build_root/pycrypto
Exception information:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg/pip/commands/install.py", line 283, in run
    requirement_set.install(install_options, global_options, root=options.root_path)
  File "/Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg/pip/req.py", line 1435, in install
    requirement.install(install_options, global_options, *args, **kwargs)
  File "/Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg/pip/req.py", line 706, in install
    cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False)
  File "/Library/Python/2.7/site-packages/pip-1.5.4-py2.7.egg/pip/util.py", line 697, in call_subprocess
    % (command_desc, proc.returncode, cwd))
InstallationError: Command /usr/bin/python -c "import setuptools, tokenize;__file__='/private/tmp/pip_build_root/pycrypto/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-_7evji-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /private/tmp/pip_build_root/pycrypto

Спасибо всем, кто может мне помочь с этим. Мы потратили последние несколько часов, пытаясь заставить это установить, и это начинает становиться довольно расстраивающим.

3 ответа

Недавно я столкнулся с той же проблемой, пытаясь установить другой пакет.

Установка следующих переменных среды перед установкой с помощью pip решила проблему для меня:

export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments

Если вы устанавливаете с помощью sudo, не забудьте использовать "sudo -E", чтобы переменные окружения распространялись через sudo.

Если это не работает для вас, попробуйте следующую команду:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install ansible

В качестве альтернативы, в качестве еще одного потенциального решения, вы можете попытаться перекомпилировать свежую версию python, используя Homebrew.

Смотрите этот вопрос для получения дополнительной информации.

Надеюсь это поможет!

Для начинающих, которые прочитали и попробовали ответ выше, но все еще не смогли (я):

sudo su - export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments pip install ansible exit

Вы должны запустить эти export Команды от имени пользователя root. Предыдущий ответ ясно говорит об этом, но то, что он на самом деле имел в виду, не переводил меня как начинающего новичка. Какие sudo su - делает это в основном переключиться на пользователя root. Затем любые команды, которые вы вводите, выполняются от имени пользователя root, и это работает.

Это, наконец, позволило мне запустить Ansible на OSX 10.9.2 после большого количества ударов головой.

Ссылка на решение: https://github.com/ansible/ansible/issues/7146

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future cc .....

или же

export ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future"
Другие вопросы по тегам