Estoy intentando instalar numpy (y scipy y matplotlib) en un virturalenv.
Sin embargo, sigo recibiendo estos errores:
RuntimeError: Broken toolchain: cannot link a simple C program
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1
Tengo las herramientas de línea de comando para xcode instaladas
$ which gcc
/usr/bin/gcc
$ which cc
/usr/bin/cc
Estoy en Mac OSX 10.9 usando un brew instalado Python
Editar
Sí, intentando instalar con pip.
Todo el rastreo es enorme (> 400 líneas)
Aquí hay una sección del mismo:
C compiler: cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe
compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c'
cc: _configtest.c
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
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
failure.
removing: _configtest.c _configtest.o
Traceback (most recent call last):
File "<string>", line 17, in <module>
File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/setup.py", line 192, in <module>
setup_package()
File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/setup.py", line 185, in setup_package
configuration=configuration )
File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/core.py", line 169, in setup
return old_setup(**new_attr)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/egg_info.py", line 10, in run
self.run_command("build_src")
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 153, in run
self.build_sources()
File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 164, in build_sources
self.build_library_sources(*libname_info)
File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 299, in build_library_sources
sources = self.generate_sources(sources, (lib_name, build_info))
File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 386, in generate_sources
source = func(extension, build_dir)
File "numpy/core/setup.py", line 674, in get_mathlib_info
raise RuntimeError("Broken toolchain: cannot link a simple C program")
RuntimeError: Broken toolchain: cannot link a simple C program
python
numpy
virtualenv
pip
Ben
fuente
fuente
RuntimeError
línea para que podamos ver qué comandos fallan. Además, ¿está instalando a travéspip
o construyendo la fuente directamente?Respuestas:
Si bien es feo, parece funcionar
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install --upgrade numpy
Tenga en cuenta que si recibe este error para un paquete que no sea numpy, (como lxml) especifique ese nombre de paquete en lugar de
numpy
al final del comando.Vi un problema similar que alguien estaba teniendo al instalar una gema
Ruby Gem install Json falla en Mavericks y Xcode 5.1 - argumento desconocido: '-multiply_definedsuppress'
Esto es solo una solución temporal, en algún momento las opciones del compilador tendrán que arreglarse
fuente
unused-command-line-argument-hard-error-in-future
Sigue siendo necesario con el último Xcode en Yosemite? Las cosas parecen funcionar (al menos para los paquetes que me he cansado) sin él.Para Docker (Alpine) y Python 3.x esto funcionó para mí:
fuente
apk update
primera, de lo contrario recibí unERROR: unsatisfiable constraints
mensaje.gcc g++ make python3-dev
para numpy / nmslib. La causa de este problema en particular parece ser el compilador de c ++ que faltag++
(parece por el error quegcc
ymake
ya están instalados). Las otras partes importantes de lanumpy
compilación son los encabezados de python3 que vienen conpython3-dev
.El problema es que no puede compilar.
Primero, asegúrese de haber aceptado los nuevos Términos y Condiciones con Xcode. Para hacer esto, simplemente abra xCode y acepte.
Luego, intente instalar gcc con
Finalmente, intente instalar Numpy con
Espero que esto ayude.
fuente
sudo xcode-select --switch /Library/Developer/CommandLineTools
(3)brew install gcc
(4)pip install numpy
Si no desea usar sudo (por lo que los permisos y cosas por el estilo se conservan al usar venv), puede agregar la declaración ARCHFLAGS a su .bash_profile y ejecutar normalmente. Esto funcionó para mí con Mavericks y Xcode 5.1 usando venv:
En ~ / .bash_profile:
Luego, simplemente ejecute el comando:
fuente
sudo
anterior es para la instalación de todo el sistema, se puede ejecutar sin en un virtualenvSimplemente tuve que abrir XCode y aceptar el acuerdo y dejar que instalara las herramientas. Luego volví a PyCharm e instalé numpy nuevamente sin problemas.
fuente
Si está ejecutando una distribución de Linux, es posible que necesite un compilador de C, especialmente si ve líneas de registro reveladoras como
sh: gcc: command not found
. Puede seguir las instrucciones aquí , que he resumido a continuación:Fedora, Red Hat, CentOS o Scientific Linux
# yum groupinstall 'Development Tools'
Debian o Ubuntu Linux
$ sudo apt-get update $ sudo apt-get install build-essential manpages-dev
Entonces puedes intentar volver a ejecutar:
fuente
Para los usuarios de Fedora que tienen un problema similar, intente instalar estos paquetes:
(si no usa python3, use python-devel y pip en lugar de pip3)
entonces intenta
fuente
En algunos casos, después de que OS X actualice XCode, XCode requerirá que el usuario (con privilegios administrativos) acepte una nueva licencia. Hasta que se acepte la licencia, clang y gcc emitirán un error al intentar compilar y vincular el código. O al menos paquetes de Python.
Si inicia XCode y acepta la licencia, los errores ya no aparecen.
Al menos, este fue mi caso.
fuente
Esto significa que no puede encontrar su compilador de C. Intente instalar el compilador gcc si falla la vinculación de otro compilador.
fuente
En mi caso, esto sucedió durante una compilación de Docker. El problema fue que la imagen base no se arregló en una versión específica de Python y numpy no pudo compilar con la nueva.
FROM python:3-slim # BAD
Después de cambiarlo a lo siguiente, funcionó:
FROM python:3.8-slim # GOOD
¡Recuerda arreglar tus versiones! :-)
fuente
Lo anterior funcionó para mí solo después de instalar python3-dev.
fuente
En Fedora 22, esto se resolvió actualizando pip:
sudo pip install --upgrade pip
fuente