Ich versuche, numpy (und scipy und matplotlib) in eine Virturalenv zu installieren.
Ich bekomme immer wieder folgende Fehler:
RuntimeError: Broken toolchain: cannot link a simple C program
----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1
Ich habe die Befehlszeilentools für xcode installiert
$ which gcc
/usr/bin/gcc
$ which cc
/usr/bin/cc
Ich bin unter Mac OSX 10.9 und verwende eine von Brew installierte Python
Bearbeiten
Ja, versucht mit pip zu installieren.
Der gesamte Traceback ist riesig (> 400 Zeilen)
Hier ist ein Abschnitt davon:
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
quelle
quelle
RuntimeError
Zeile an, damit wir sehen können, welche Befehle fehlschlagen. Installieren Sie auch überpip
oder durch direktes Erstellen der Quelle?Antworten:
Während es hässlich ist, scheint es zu funktionieren
Beachten Sie, dass Sie, wenn Sie diesen Fehler für ein anderes Paket als numpy (z. B. lxml) erhalten, diesen Paketnamen anstelle des
numpy
Endes des Befehls angeben.Ich sah ein ähnliches Problem, das jemand bei der Installation eines Edelsteins hatte
Ruby Gem-Installation Json schlägt auf Mavericks und Xcode 5.1 fehl - unbekanntes Argument: '-multiply_definedsuppress'
Dies ist nur eine vorübergehende Korrektur. Irgendwann müssen die Compileroptionen behoben werden
quelle
unused-command-line-argument-hard-error-in-future
mit dem neuesten Xcode unter Yosemite noch benötigt? Die Dinge scheinen ohne sie zu funktionieren (zumindest für die Pakete, die ich müde bin).Für Docker (Alpine) und Python 3.x hat dies bei mir funktioniert:
quelle
apk update
erste, sonst bekam ich eineERROR: unsatisfiable constraints
Nachricht.gcc g++ make python3-dev
für numpy / nmslib tun. Die Ursache für dieses spezielle Problem scheint der fehlende C ++ - Compiler zu seing++
(es sieht nach dem Fehler aus, dassgcc
undmake
bereits installiert sind). Die anderen wichtigen Teile desnumpy
Builds sind die mitgelieferten Python3-Headerpython3-dev
.Das Problem ist, dass Sie nicht kompilieren können.
Stellen Sie zunächst sicher, dass Sie die neuen Allgemeinen Geschäftsbedingungen mit Xcode akzeptiert haben. Öffnen Sie dazu einfach xCode und akzeptieren Sie.
Versuchen Sie dann, gcc mit zu installieren
Versuchen Sie abschließend, Numpy mit zu installieren
Hoffe das hilft.
quelle
Wenn Sie sudo nicht verwenden möchten (damit Berechtigungen und ähnliches bei Verwendung von venv erhalten bleiben), können Sie die ARCHFLAGS-Deklaration zu Ihrem .bash_profile hinzufügen und wie gewohnt ausführen. Dies funktionierte bei mir mit Mavericks und Xcode 5.1 mit venv:
In ~ / .bash_profile:
Führen Sie dann einfach den folgenden Befehl aus:
quelle
sudo
obige ist für die systemweite Installation, kann ohne in einer virtuellen Umgebung ausgeführt werdenIch musste einfach XCode öffnen und die Vereinbarung akzeptieren und die Tools installieren lassen. Ich ging dann zurück zu PyCharm und installierte numpy ohne Probleme erneut.
quelle
Wenn Sie eine Linux-Distribution ausführen, benötigen Sie möglicherweise einen C-Compiler, insbesondere wenn Sie verräterische Protokollzeilen wie sehen
sh: gcc: command not found
. Sie können den Anweisungen hier folgen , die ich unten zusammengefasst habe:Fedora, Red Hat, CentOS oder Scientific Linux
# yum groupinstall 'Development Tools'
Debian oder Ubuntu Linux
$ sudo apt-get update $ sudo apt-get install build-essential manpages-dev
Dann können Sie versuchen, erneut auszuführen:
quelle
Versuchen Sie für Fedora-Benutzer, die ein ähnliches Problem haben, die Installation dieser Packeges:
(Wenn Sie Python3 nicht verwenden, verwenden Sie Python-Devel und Pip anstelle von Pip3.)
dann versuche es
quelle
In einigen Fällen muss der Benutzer (mit Administratorrechten) nach dem Upgrade von XCode durch OS X eine neue Lizenz akzeptieren. Bis die Lizenz akzeptiert wird, geben clang und gcc beim Versuch, Code zu kompilieren und zu verknüpfen, einen Fehler aus. Oder zumindest Python-Pakete.
Wenn Sie XCode starten und die Lizenz akzeptieren, werden die Fehler nicht mehr angezeigt.
Zumindest war dies bei mir der Fall.
quelle
Dies bedeutet, dass Ihr C-Compiler nicht gefunden werden kann. Versuchen Sie, den gcc-Compiler zu installieren, wenn die Verknüpfung mit einem anderen Compiler fehlschlägt.
quelle
Das obige hat bei mir erst nach der Installation von python3-dev funktioniert.
quelle
Auf Fedora 22 wurde dies durch Aktualisieren von pip selbst behoben:
sudo pip install --upgrade pip
quelle