Beim Versuch, psycopg2
über pip auf Mavericks 10.9 zu installieren, wird folgende Fehlermeldung angezeigt:
clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]
Ich bin mir nicht sicher, wie ich vorgehen soll, und habe hier und anderswo nach diesem bestimmten Fehler gesucht. Jede Hilfe wird sehr geschätzt!
Hier ist die vollständige Ausgabe von pip:
$ pip install psycopg2
Downloading/unpacking psycopg2
Downloading psycopg2-2.5.2.tar.gz (685kB): 685kB downloaded
Running setup.py (path:/private/var/folders/0z/ljjwsjmn4v9_zwm81vhxj69m0000gn/T/pip_build_tino/psycopg2/setup.py) egg_info for package psycopg2
Installing collected packages: psycopg2
Running setup.py install for psycopg2
building 'psycopg2._psycopg' extension
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 -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.5.2 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x090303 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I. -I/usr/local/Cellar/postgresql/9.3.3/include -I/usr/local/Cellar/postgresql/9.3.3/include/server -c psycopg/psycopgmodule.c -o build/temp.macosx-10.9-intel-2.7/psycopg/psycopgmodule.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
Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/private/var/folders/0z/ljjwsjmn4v9_zwm81vhxj69m0000gn/T/pip_build_tino/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/0z/ljjwsjmn4v9_zwm81vhxj69m0000gn/T/pip-bnWiwB-record/install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build/lib.macosx-10.9-intel-2.7
creating build/lib.macosx-10.9-intel-2.7/psycopg2
copying lib/__init__.py -> build/lib.macosx-10.9-intel-2.7/psycopg2
copying lib/_json.py -> build/lib.macosx-10.9-intel-2.7/psycopg2
copying lib/_range.py -> build/lib.macosx-10.9-intel-2.7/psycopg2
copying lib/errorcodes.py -> build/lib.macosx-10.9-intel-2.7/psycopg2
copying lib/extensions.py -> build/lib.macosx-10.9-intel-2.7/psycopg2
copying lib/extras.py -> build/lib.macosx-10.9-intel-2.7/psycopg2
copying lib/pool.py -> build/lib.macosx-10.9-intel-2.7/psycopg2
copying lib/psycopg1.py -> build/lib.macosx-10.9-intel-2.7/psycopg2
copying lib/tz.py -> build/lib.macosx-10.9-intel-2.7/psycopg2
creating build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/__init__.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/dbapi20.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/dbapi20_tpc.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_async.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_bug_gc.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_bugX000.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_cancel.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_connection.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_copy.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_cursor.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_dates.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_extras_dictcursor.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_green.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_lobject.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_module.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_notify.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_psycopg2_dbapi20.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_quote.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_transaction.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_types_basic.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_types_extras.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/test_with.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/testconfig.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
copying tests/testutils.py -> build/lib.macosx-10.9-intel-2.7/psycopg2/tests
running build_ext
building 'psycopg2._psycopg' extension
creating build/temp.macosx-10.9-intel-2.7
creating build/temp.macosx-10.9-intel-2.7/psycopg
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 -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.5.2 (dt dec pq3 ext)" -DPG_VERSION_HEX=0x090303 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I. -I/usr/local/Cellar/postgresql/9.3.3/include -I/usr/local/Cellar/postgresql/9.3.3/include/server -c psycopg/psycopgmodule.c -o build/temp.macosx-10.9-intel-2.7/psycopg/psycopgmodule.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...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/private/var/folders/0z/ljjwsjmn4v9_zwm81vhxj69m0000gn/T/pip_build_tino/psycopg2/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/0z/ljjwsjmn4v9_zwm81vhxj69m0000gn/T/pip-bnWiwB-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /private/var/folders/0z/ljjwsjmn4v9_zwm81vhxj69m0000gn/T/pip_build_tino/psycopg2
python
clang
pip
osx-mavericks
Tino
quelle
quelle
Antworten:
Sie können clang anweisen, dies nicht als Fehler auszulösen, indem Sie vor der Kompilierung die folgenden Umgebungsvariablen festlegen:
Dann
pip install psycopg2
sollte es funktionieren.Ich hatte das gleiche, als ich es versuchte
pip install lxml
.Bearbeiten: Wenn Sie als Superuser installieren (was wahrscheinlich der Fall ist, wenn Sie versuchen, an
/Library/Python/2.7/site-packages
die native werkseitig installierte Python-Distribution von Apple anzuhängen , die im Lieferumfang von OS X enthalten ist, und nicht an eine andere Python-Distribution, die Sie anschließend selbst installiert haben ), dann müssen Sie tun, wie von @Thijs Kuipers in den Kommentaren unten beschrieben:oder das Äquivalent, für welchen anderen Paketnamen Sie möglicherweise anstelle von ersetzen
psycopg2
.UPDATE [2014-05-16]: Apple hat dieses Problem mit aktualisierten Systempythons (2.7, 2.6 und 2.5) behoben,
OS X 10.9.3
sodass die Problemumgehung bei Verwendung der neuesten Mavericks und nicht mehr erforderlich istXcode 5.1+
.OS X 10.8.x
Ab sofort ist die Problemumgehung für (Mountain Lion, derzeit 10.8.5) weiterhin erforderlich , wenn Sie sieXcode 5.1+
dort verwenden.quelle
greenlet
mit pip. Das hat es behoben, danke.-E
Flag hinzufügensudo
, um die Umgebungsvariablen für die Root-Ausführung zu laden, wie @ErikAndren sagte. Also zuerst die beiden oben genanntenexport
Aussagen, gefolgt vonsudo -E doSomething
.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 geliefert wurde und viele, viele Menschen betrifft. Hoffentlich wird bald ein Fix erscheinen.
Update: Ich hatte nicht erwartet, dass dies so viel Aufmerksamkeit erregt, aber hier ist mehr Detail: Der Clang 3.4 Apple liefert standardmäßig Fehler bei unbekannten Flags, aber CPython erstellt Module mit denselben Flags, mit denen es ursprünglich kompiliert wurde. Das System CPython wurde mit mehreren Flags kompiliert, die durch Klirren unbekannt sind, wodurch dieses Problem verursacht wurde. Im Folgenden sind die aktuellen CPython-Kompilierungsflags von Mavericks (10.9.2) aufgeführt:
Um dieses Problem zu beheben, haben Sie einige Möglichkeiten:
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
Ihren Kompilierungsflags hinzu.CFLAGS=""
quelle
python-config --cflags
. Wenn es auf Apples Standard-Python ausgeführt wird, werden Optionen angezeigt, die Clang 3.4 nicht bekannt sind.~/.bash_profile
kein bashrc, aber dazu müssten Sie die Shell neu starten, damit sie wirksam wird.xCode 5.1
quelle
sudo ARCHFLAGS=... pip install ...
)Hier ist eine Problemumgehung, bei der das Flag aus der Python-Installation entfernt wird.
In
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py
gibt es mehrere Stellen, an denen die-mfused-madd
/-mno-fused-madd
Flag gesetzt.Bearbeiten Sie diese Datei und entfernen Sie alle Verweise auf das Flag, das Ihre Kompilierung funktionieren soll:
Sie müssen auch die entsprechenden Dateien
_sysconfigdata.pyc
und_sysconfigdata.pyo
Dateien löschen - zumindest auf meinem System wurden diese Dateien nicht automatisch neu erstellt:Beachten Sie, dass Sie Root-Zugriff verwenden müssen, um diese Änderungen vorzunehmen.
quelle
Ich habe auch die Vorstellung des Systempythons von seinen ursprünglichen Kompilierungsflags bearbeitet (wie @ user3405479). 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, z. B. unter
sudo -i
pushd /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
sed 's/-mno-fused-madd//g' _sysconfigdata.py \ | diff -p _sysconfigdata.py - | patch -b
python -m py_compile _sysconfigdata.py
python -OO -m py_compile _sysconfigdata.py
popd
quelle
Ich habe Homebrew verwendet, um postgresql zu installieren, und wollte dann psycopg2 in dem vom System bereitgestellten Python 2.7 auf Mavericks installieren. Damit das funktioniert, habe ich Folgendes ausgeführt:
quelle
Zumindest Apple ist sich dessen bewusst, da dieses Problem in den Xcode 5.1- Versionshinweisen (Compiler-Abschnitt) behandelt wird. Erwarten Sie beim nächsten Betriebssystem-Update ein aktualisiertes Python und Ruby (Daumen drücken!). Beachten Sie auch, dass das
-Wno-error=unused-command-line-argument-hard-error-in-future
Flag als vorübergehende Problemumgehung gedacht ist und in Zukunft nicht mehr angezeigt wird (hoffentlich nachdem das System Python repariert wurde!).Wenn Sie ein Python-Paketbetreuer wie ich sind und Ihren Benutzern den Aufwand ersparen möchten, dies selbst zu umgehen, finden Sie hier eine Lösung (neben der Bereitstellung von binären Rädern / Eiern), die in Ihre
setup.py
Datei aufgenommen wird:quelle
Keine der oben genannten Lösungen hat bei mir funktioniert. Meine Situation ist etwas anders. Ich habe versucht, rdiff-backup über Homebrew zu installieren, als ich diese Fehlermeldung erhielt.
Ich habe anscheinend sowohl Apples Standardpython (2.7.5 @ / usr / bin / python) als auch Homebrews Python (2.7.6 @ /usr/local/Cellar/python/2.7.6/bin/python), aber der Fehler kam aus Apples Python.
Um das Problem zu beheben, habe ich im Grunde die Python-Binärdateien gewechselt.
Ich habe das via sudo gemacht:
Dann war 'Brew Install Rdiff-Backup' ohne Fehler erfolgreich.
Schließlich habe ich "mv / usr / bin / python_orig / usr / bin / python" gemacht, um alles zurückzusetzen.
quelle
Sie sind wahrscheinlich auf Python 2.7.5
Die einfachste Lösung finden Sie unter www.python.org. Installieren Sie Python 2.7.6, das mit LLVM 5.1 kompatibel ist.
Dann stoßen Sie auf Ihre alte virtuelle Umgebung an
rmvirtualenv {virtual_env_name}
.Dann machen Sie eine neue virtuelle Umgebung.
pip sollte danach gut funktionieren.
quelle
Amazon Linux [AWS EC2]
Der Versuch,
pip install paramiko
aufAmazon Linux AMI release 2016.09
gab mir einen Fehler, der einen Link zu diesem SO Beitrag enthielt. Also, obwohl es nicht zum Titel des OP passt, werde ich die Antwort teilen.Golden!
quelle
Ich habe Homebrew Python-Paket verwendet. Funktioniert gut nach dem erneuten Kompilieren.
quelle
Variation des Fixes _sysconfigdata.py: Verwenden Sie eine virtuelle Umgebung
cp /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py ${VIRTUAL_ENV}/lib/python2.7/_sysconfigdata.py
Bearbeiten Sie dann Ihre Kopie unter $ {VIRTUAL_ENV} /lib/python2.7/_sysconfigdata.py
Ich habe alle Vorkommen von '-mno-fused-madd' entfernt und dann Builds in dieser virtuellen Umgebung erstellt.
Keine Wurzel benötigt!
quelle
Für mich wurden die fehlerhaften Flags explizit im Makefile des Pakets angegeben. Also musste ich das Makefile bearbeiten, um das nicht erkannte Flag aus dem fehlerhaften Paket zu entfernen.
quelle
Das Upgrade von Homebrew und die Installation von unixodbc haben es für mich gelöst
quelle