Ich hatte das gleiche beim Versuch pip install lxml.
Bearbeiten: Wenn Sie als Superuser installieren (was wahrscheinlich der Fall sein wird, wenn Sie versuchen, an /Library/Python/2.7/site-packagesdie native, werkseitig von Apple installierte Python-Distribution, die mit OS X geliefert wird, und nicht zu einer anderen Python-Distribution, die Sie anschließend selbst installiert haben), müssen Sie Folgendes tun, wie von @Thijs Kuipers in den Kommentaren unten beschrieben:
sudo -E pip install psycopg2
oder das Äquivalent für einen anderen Paketnamen, den Sie möglicherweise ersetzen psycopg2.
AKTUALISIEREN [2014-05-16]: Apple hat dieses Problem mit aktualisierten System-Pythons (2.7, 2.6 und 2.5) in behoben OS X 10.9.3 Daher ist die Problemumgehung bei Verwendung der neuesten Mavericks und nicht mehr erforderlich Xcode 5.1+. Ab sofort ist die Problemumgehung jedoch noch erforderlich für OS X 10.8.x (Mountain Lion, derzeit 10.8.5), falls Sie verwenden Xcode 5.1+ dort.
Ich hatte dieses Problem bei der Installation greenlet mit Pip. Das hat es behoben, danke.
– jbraun
11. März 2014 um 14:21 Uhr
Dies hat bei mir als sofortige Lösung funktioniert, danke! Eine Erklärung zur Ursache des Problems finden Sie in der Antwort von Paul Kehrer.
– Tino
11. März 2014 um 17:02 Uhr
Wenn Sie als Root installieren, müssen Sie die Flags für den Root-Benutzer setzen.
– ErikAndren
18. März 2014 um 6:29 Uhr
Ich musste die hinzufügen -E Flagge zu sudo um die Umgebungsvariablen für die Root-Ausführung zu laden, wie @ErikAndren sagte. Also zuerst die beiden oben genannten export Aussagen, gefolgt von sudo -E doSomething.
– Thijs Kuipers
18. März 2014 um 22:43 Uhr
Hat mir mit Pillow mein Leben gerettet. Vielen Dank!
– Schlau
29. März 2014 um 23:46 Uhr
Paul Kehrer
Update: 10.9.3 behebt das Problem mit System CPython.
Dies wird durch das neueste Clang-Update von Apple verursacht, das heute mit Xcode 5.1 kam und viele, viele Menschen betrifft, also wird hoffentlich bald eine Lösung erscheinen.
Update: Ich hatte nicht erwartet, dass dies so viel Aufmerksamkeit erregen würde, aber hier sind weitere Details: Clang 3.4 Apple liefert standardmäßig Fehler bei unbekannten Flags aus, aber CPython erstellt Module mit demselben Satz von Flags, mit denen es ursprünglich kompiliert wurde. Das System CPython wurde mit mehreren Flags kompiliert, die Clang unbekannt sind, wodurch dieses Problem verursacht wird. Im Folgenden sind die aktuellen Mavericks (10.9.2) CPython-Kompilierungsflags aufgeführt:
Warten Sie auf das nächste OS X-Update, das angeblich neu kompiliertes Python/Ruby enthält, um dieses Problem für Systemlaufzeiten zu beseitigen.
@paul, ah danke für die info. Gibt es eine Möglichkeit, über den Status dieses Ihnen bekannten Fehlers auf dem Laufenden zu bleiben? Ich würde Clang gerne aktualisieren, sobald ein Fix verfügbar ist.
– Tino
11. März 2014 um 16:18 Uhr
Das ist kein Clang-Bug, das ist ein Distributions-Bug von Apple. Apple sollte keine Python-Version verteilen, die mit Einstellungen erstellt wurde, die nicht mit Clang 3.4 kompatibel sind. Es wird ordnungsgemäß behoben, indem Apple den Python-Interpreter aktualisiert.
– Bis
11. März 2014 um 18:56 Uhr
Sie können dies durch Ausführen überprüfen python-config --cflags. Wenn es auf Apples Standard-Python ausgeführt wird, werden Optionen angezeigt, die Clang 3.4 unbekannt sind.
– Bis
11. März 2014 um 18:58 Uhr
Gibt es eine Lösung dafür, wenn ich bereits auf Xcode 5.1 aktualisiert habe? Das Hinzufügen dieser Exporte in bashrc wie oben vorgeschlagen schien das Problem nicht zu lösen.
– Sean Danzeiser
11. März 2014 um 23:30 Uhr
An Sean: Auf meinem Mac habe ich ~/.bash_profile nicht bashrc, aber dazu müssten Sie die Shell neu starten, um wirksam zu werden.
Ich hatte viele Probleme mit der Installation von psycog2 über pip und das hat das Problem für mich behoben. Vielen Dank.
– Brandon Aaskov
19. März 2014 um 19:24 Uhr
Wenn Sie sudo verwenden, muss sudo vor dem Festlegen der Umgebungsvariablen ausgeführt werden. (dh, sudo ARCHFLAGS=... pip install ...)
– Joe Freemann
1. April 2014 um 13:13 Uhr
Arbeitete für die Installation von Pycrypto. Vielen Dank!
– Chris Sears
7. April 2014 um 23:22 Uhr
Benutzer3405479
Hier ist eine Problemumgehung, bei der das Flag aus der Python-Installation entfernt wird.
Im /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py sind mehrere Orte, wo die -mfused-madd / -mno-fused-madd Flagge ist gesetzt.
Bearbeiten Sie diese Datei und entfernen Sie alle Verweise auf das Flag, mit dem Ihre Zusammenstellung funktionieren sollte:
sudo sed -i '.old' 's/ -m\(no-\)\{0,1\}fused-madd //g' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py
Sie müssen die entsprechende löschen _sysconfigdata.pyc und _sysconfigdata.pyo Dateien ebenfalls – zumindest auf meinem System wurden diese Dateien nicht automatisch neu erstellt:
cd /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
sudo rm _sysconfigdata.pyo _sysconfigdata.pyc
Beachten Sie, dass Sie Root-Zugriff verwenden müssen, um diese Änderungen vorzunehmen.
Ben
Ich habe auch die Vorstellung von Systempython von seinen ursprünglichen Compiler-Flags bearbeitet (wie es @user3405479 getan hat). Anstelle eines Editors habe ich Befehlszeilentools verwendet, um die Datei “an Ort und Stelle” zu bearbeiten (der Inode ändert sich). Ich habe auch neue Pyo- und Pyc-Dateien kompiliert, anstatt sie gelöscht zu lassen.
Die folgenden Befehle werden als root ausgeführt, zum Beispiel unter sudo -i
Bis Apple seine Python-Installation repariert, scheint dies die praktischste und endgültige Lösung zu sein. Danke für die komplette Anleitung!
– ᴠɪɴᴄᴇɴᴛ
18. April 2014 um 14:15 Uhr
Nathan Aktien
Ich habe Homebrew verwendet, um postgresql zu installieren, und wollte dann psycopg2 in das vom System bereitgestellte Python 2.7 auf Mavericks installieren. Um das zum Laufen zu bringen, habe ich Folgendes ausgeführt:
Bis Apple seine Python-Installation repariert, scheint dies die praktischste und endgültige Lösung zu sein. Danke für die komplette Anleitung!
– ᴠɪɴᴄᴇɴᴛ
18. April 2014 um 14:15 Uhr
Zumindest Apple ist sich dessen bewusst, da dieses Problem in Xcode 5.1 diskutiert wird Versionshinweise (Compiler-Abschnitt). Erwarten Sie ein aktualisiertes Python und Ruby im nächsten Betriebssystem-Update (Daumen drücken!). Beachten Sie auch, dass die -Wno-error=unused-command-line-argument-hard-error-in-future flag ist als vorübergehende Problemumgehung gedacht und wird in Zukunft verschwinden (hoffentlich, nachdem das System Python repariert wurde!).
Wenn Sie wie ich ein Betreuer von Python-Paketen sind und Ihren Benutzern die Mühe ersparen möchten, dies selbst zu umgehen, finden Sie hier eine Lösung (neben der Bereitstellung von Binärrädern/Eiern), die in Ihre Anwendung passt setup.py Datei:
from distutils.command.build_ext import build_ext
import subprocess
import sys
# Workaround for OS X 10.9.2 and Xcode 5.1+
# The latest clang treats unrecognized command-line options as errors and the
# Python CFLAGS variable contains unrecognized ones (e.g. -mno-fused-madd).
# See Xcode 5.1 Release Notes (Compiler section) and
# http://stackoverflow.com/questions/22313407 for more details. This workaround
# follows the approach suggested in http://stackoverflow.com/questions/724664.
class build_ext_subclass(build_ext):
def build_extensions(self):
if sys.platform == 'darwin':
# Test the compiler that will actually be used to see if it likes flags
proc = subprocess.Popen(self.compiler.compiler + ['-v'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
universal_newlines=True)
stdout, stderr = proc.communicate()
clang_mesg = "clang: error: unknown argument: '-mno-fused-madd'"
if proc.returncode and stderr.splitlines()[0].startswith(clang_mesg):
for ext in self.extensions:
# Use temporary workaround to ignore invalid compiler option
# Hopefully -mno-fused-madd goes away before this workaround!
ext.extra_compile_args += ['-Wno-error=unused-command-line-argument-hard-error-in-future']
build_ext.build_extensions(self)
setup(
name="mypackage",
...
cmdclass={'build_ext' : build_ext_subclass},
...
)
10692800cookie-checkClang-Fehler: Unbekanntes Argument: ‘-mno-fused-madd’ (Fehler bei der Installation des Python-Pakets)yes
Ich habe denselben Fehler beim Erstellen einer C-Bibliothek: clang: error: unknown argument: ‘-mno-fused-madd’ …
– huync
11. März 2014 um 10:13 Uhr
Dieses Problem tritt bei jedem Python-Paket auf, das ein C-Modul enthält, nicht nur bei psycopg2.
– al45tair
15. März 2014 um 9:02 Uhr