clang: error: argumento desconocido: ‘-mno-fused-madd’

Recibo el siguiente error al intentar instalar Scrapy en un sistema operativo Mavericks.

Tengo herramientas de línea de comandos y X11 instalado. Realmente no sé qué está pasando y no he encontrado el mismo error al navegar por la Web. Creo que podría estar relacionado con algún cambio en Xcode 5.1

Gracias por las respuestas!

esto es parte de la salida del comando:

$ pip instalar scrapy


. . . . Downloading/unpacking cryptography>=0.2.1 (from pyOpenSSL->scrapy) Downloading cryptography-0.3.tar.gz (208kB): 208kB downloaded Running setup.py egg_info for package cryptography OS/X: confusion between 'cc' versus 'gcc' (see issue 123) will not use '__thread' in the C code 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 Traceback (most recent call last): File "", line 16, in  File "/Users/agonzamart/.virtualenvs/Parser/build/cryptography/setup.py", line 156, in  "test": PyTest, File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 112, in setup _setup_distribution = dist = klass(attrs) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 265, in __init__ self.fetch_build_eggs(attrs.pop('setup_requires')) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 289, in fetch_build_eggs parse_requirements(requires), installer=self.fetch_build_egg File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 618, in resolve dist = best[req.key] = env.best_match(req, self, installer) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 862, in best_match return self.obtain(req, installer) # try and download/install File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 874, in obtain return installer(requirement) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 339, in fetch_build_egg return cmd.easy_install(req) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 623, in easy_install return self.install_item(spec, dist.location, tmpdir, deps) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 653, in install_item dists = self.install_eggs(spec, download, tmpdir) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 849, in install_eggs return self.build_and_install(setup_script, setup_base) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1130, in build_and_install self.run_setup(setup_script, setup_base, args) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1118, in run_setup raise DistutilsError("Setup script exited with %s" % (v.args[0],)) distutils.errors.DistutilsError: Setup script exited with error: command 'cc' failed with exit status 1 Complete output from command python setup.py egg_info: OS/X: confusion between 'cc' versus 'gcc' (see issue 123) will not use '__thread' in the C code 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 Traceback (most recent call last): File "", line 16, in  File "/Users/agonzamart/.virtualenvs/Parser/build/cryptography/setup.py", line 156, in  "test": PyTest, File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 112, in setup _setup_distribution = dist = klass(attrs) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 265, in __init__ self.fetch_build_eggs(attrs.pop('setup_requires')) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 289, in fetch_build_eggs parse_requirements(requires), installer=self.fetch_build_egg File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 618, in resolve dist = best[req.key] = env.best_match(req, self, installer) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 862, in best_match return self.obtain(req, installer) # try and download/install File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/pkg_resources.py", line 874, in obtain return installer(requirement) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/dist.py", line 339, in fetch_build_egg return cmd.easy_install(req) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 623, in easy_install return self.install_item(spec, dist.location, tmpdir, deps) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 653, in install_item dists = self.install_eggs(spec, download, tmpdir) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 849, in install_eggs return self.build_and_install(setup_script, setup_base) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1130, in build_and_install self.run_setup(setup_script, setup_base, args) File "/Users/agonzamart/.virtualenvs/Parser/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1118, in run_setup raise DistutilsError("Setup script exited with %s" % (v.args[0],)) distutils.errors.DistutilsError: Setup script exited with error: command 'cc' failed with exit status 1 ---------------------------------------- Cleaning up... Command python setup.py egg_info failed with error code 1 in /Users/agonzamart/.virtualenvs/Parser/build/cryptography 

Se debe a un cambio en los valores predeterminados de Xcode 5.1 en Xcode 5.1 y Apple no se da cuenta de que interrumpiría las comstackciones de módulos de extensión utilizando el sistema Python. Una solución es definir primero las siguientes variables de entorno:

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

ACTUALIZACIÓN [2014-05-16]: Como se esperaba, Apple solucionó este problema con el sistema actualizado Pythons (2.7, 2.6 y 2.5) en OS X 10.9.3 por lo que la solución ya no es necesaria cuando se usan los últimos Mavericks y Xcode 5.1+ . Sin embargo, a partir de ahora, aún se requiere una solución para OS X 10.8.x (Mountain Lion, actualmente 10.8.5) si está usando Xcode 5.1+ allí.

La última versión de clang elevó al nivel de error lo que solía ser una advertencia. Para volver a cambiar, puede eliminar este comportamiento en línea justo antes de ejecutar el comando de instalación:

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

Esto debería funcionar, pero en caso de que algo salga mal, hay más información aquí: error de argot: argumento desconocido: ‘-mno-fused-madd’ (error de instalación del paquete Python)

En realidad, las respuestas de Ned y Dorian están vinculadas:

  • La eliminación de -mno-fused-madd de _sysconfigdata.py evita que las banderas se pasen al comstackdor.
  • La configuración de las variables de entorno le dice al comstackdor que ignore las banderas, pero las banderas aún se están pasando. Esto puede romperse en una futura versión de Xcode.

Acabo de pasar los DÍAS luchando contra este problema en varios paquetes y, como novato de Python, no podía averiguar de dónde venían las banderas. Para complementar la respuesta de Dorian, Xcode 5 solo es compatible con el comstackdor Clang de Apple y no con GCC, pero la distribución de Python que viene con los Mavericks parece haber sido creada con GCC. El archivo _sysconfigdata.py contiene las banderas que se usaron para comstackr el intérprete de Python, y esas banderas las usa el sistema de comstackción de Python en varios proyectos. Por lo tanto, cualquier proyecto que use el sistema de comstackción de Python usa indicadores que no son compatibles con el comstackdor instalado.

Instalé python utilizando Homebrew (que lo coloca en / usr / local / Cellar y usé mi instalación apple-gcc42 también en / usr / local / Cellar) y encontré que el _sysconfigdata.py instalado contiene indicadores razonables. Sin embargo, sigue utilizando GCC. Es posible que desee crear Python a partir de fonts utilizando Clang. Creo que editar las banderas en _sysconfigdata.py es la mejor manera de evitar el paso repetido en este problema.

También elimine _sysconfigdata.pyc y _sysconfigdata.pyo.

Esto también está cubierto en los siguientes hilos:

error de Clang: argumento desconocido: ‘-mno-fused-madd’ (error de instalación del paquete Python) https://discussions.apple.com/thread/5465305