Podczas próby instalacji psycopg2
przez pip na Mavericks 10.9 pojawia się następujący błąd :
clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]
Nie wiem, jak postępować i szukałem tego i innego miejsca w poszukiwaniu tego konkretnego błędu. Każda pomoc jest mile widziana!
Oto pełne dane wyjściowe z 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
źródło
źródło
Odpowiedzi:
Możesz powiedzieć clang, aby nie zgłaszał tego jako błędu, ustawiając następujące zmienne środowiskowe przed kompilacją:
To
pip install psycopg2
powinno działać.Miałem to samo, gdy próbowałem
pip install lxml
.Edycja: jeśli instalujesz jako superużytkownik (co może się zdarzyć, jeśli próbujesz się do niego dołączyć
/Library/Python/2.7/site-packages
, natywna, fabrycznie zainstalowana dystrybucja Apple w języku Python, która jest dostarczana z systemem OS X, zamiast innej dystrybucji Python, którą później samodzielnie zainstalowałeś ), musisz to zrobić zgodnie z opisem @Thijs Kuipers w komentarzach poniżej:lub równoważny, dla dowolnej innej nazwy pakietu, którą możesz zastąpić zamiast
psycopg2
.AKTUALIZACJA [2014-05-16]: Apple rozwiązało ten problem ze zaktualizowanymi pytonami systemowymi (2.7, 2.6 i 2.5),
OS X 10.9.3
więc obejście nie jest już konieczne w przypadku korzystania z najnowszych Mavericks iXcode 5.1+
. Jednak na razie obejście jest nadal wymaganeOS X 10.8.x
(Mountain Lion, obecnie 10.8.5), jeśli go używaszXcode 5.1+
.źródło
greenlet
z instalacją za pomocą pip. To naprawiło, dzięki.-E
flagę, abysudo
załadować zmienne środowiskowe do wykonania roota, jak powiedział @ErikAndren. Najpierw dwa wyżej wymienioneexport
stwierdzenia, a następniesudo -E doSomething
.Aktualizacja: 10.9.3 rozwiązuje problem z CPython systemu.
Jest to spowodowane najnowszą aktualizacją Clang firmy Apple, która została dzisiaj dostarczona z Xcode 5.1 i dotyczy wielu osób, więc mam nadzieję, że wkrótce pojawi się poprawka.
Aktualizacja: Nie spodziewałem się, że zwróci to tyle uwagi, ale oto więcej szczegółów: clang 3.4 Apple domyślnie wysyła błędy w przypadku nieznanych flag, ale CPython buduje moduły przy użyciu tego samego zestawu flag, z którymi został skompilowany pierwotnie. System CPython został skompilowany z kilkoma flagami nieznanymi przez clang, co powoduje ten problem. Poniżej przedstawiono aktualne flagi kompilacji CPython Mavericks (10.9.2):
Aby rozwiązać ten problem, masz kilka opcji:
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
do swoich flag kompilacji.CFLAGS=""
źródło
python-config --cflags
. Po uruchomieniu na domyślnym Pythonie Apple, pokaże opcje nieznane dla clang 3.4.~/.bash_profile
bashrc, ale to by wymagało ponownego uruchomienia powłoki, aby zadziałało.xCode 5.1
źródło
sudo ARCHFLAGS=... pip install ...
)Oto obejście, które polega na usunięciu flagi z instalacji Pythona.
W
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py
kilku miejscach ustawiono flagę-mfused-madd
/-mno-fused-madd
.Edytuj ten plik i usuń wszystkie odwołania do tej flagi, którą powinna działać kompilacja:
Musisz również usunąć odpowiednie
_sysconfigdata.pyc
i_sysconfigdata.pyo
pliki - przynajmniej w moim systemie te pliki nie zostały automatycznie odbudowane:Pamiętaj, że aby dokonać tych zmian, musisz użyć dostępu do konta root.
źródło
Zredagowałem również pojęcie Pythona systemowego o jego oryginalnych flagach kompilacji (tak jak zrobił to @ user3405479). Zamiast edytora użyłem narzędzi wiersza poleceń do edycji pliku „na miejscu” (i-węzeł się zmienia). Skompilowałem również nowe pliki pyo i pyc zamiast pozostawiać je usunięte.
Następujące polecenia są uruchamiane jako root, na przykład pod
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
źródło
Użyłem homebrew do zainstalowania postgresql, a następnie chciałem zainstalować psycopg2 w dostarczonym przez system python 2.7 na Mavericks. Aby to zadziałało, skończyło się na tym, że:
źródło
Przynajmniej Apple jest tego świadomy, ponieważ ten problem został omówiony w Uwagach do wydania Xcode 5.1 (sekcja Kompilator). Spodziewaj się zaktualizowanego Pythona i Ruby w następnej aktualizacji systemu operacyjnego (kciuki!). Zauważ też, że
-Wno-error=unused-command-line-argument-hard-error-in-future
flaga ma być tymczasowym obejściem i zniknie w przyszłości (mam nadzieję, że po naprawieniu Python w systemie!).Jeśli jesteś opiekunem pakietów Pythona, takim jak ja, i chcesz zaoszczędzić użytkownikom kłopotów z samodzielnym obejściem tego problemu, oto rozwiązanie (oprócz zapewnienia binarnych kół / jaj), które trafia do Twojego
setup.py
pliku:źródło
Żadne z powyższych rozwiązań nie działało dla mnie. Moja sytuacja jest nieco inna. Próbowałem zainstalować rdiff-backup przez homebrew, kiedy otrzymałem ten komunikat o błędzie.
Najwyraźniej mam zarówno domyślny python Apple (2.7.5 @ / usr / bin / python), jak i python Homebrew (2.7.6 @ /usr/local/Cellar/python/2.7.6/bin/python), ale błąd nadchodził z pytona Apple.
Aby rozwiązać problem, w zasadzie zmieniłem pliki binarne Pythona.
Zrobiłem to przez sudo:
Następnie „brew install rdiff-backup” powiodło się bez żadnych błędów.
Wreszcie zrobiłem polecenie „mv / usr / bin / python_orig / usr / bin / python”, aby wszystko cofnąć.
źródło
Prawdopodobnie korzystasz z Python 2.7.5
Najłatwiejsze rozwiązanie przejdź do www.python.org i zainstaluj Python 2.7.6, który jest zgodny z LLVM 5.1.
Następnie wznieś toast za swoje stare wirtualne środowisko,
rmvirtualenv {virtual_env_name}
.Następnie utwórz nową wirtualną środowisko…
po tym pip powinien działać poprawnie.
źródło
Amazon Linux [AWS EC2]
Próbowanie
pip install paramiko
dalejAmazon Linux AMI release 2016.09
dało mi błąd, który zawierał link do tego postu SO. Tak więc, mimo że nie pasuje do tytułu PO, podzielę się odpowiedzią.Złoty!
źródło
Użyłem pakietu Homebrew Python. Działa dobrze po ponownym wypełnieniu.
źródło
Odmiana poprawki _sysconfigdata.py: użyj środowiska wirtualnego
cp /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py ${VIRTUAL_ENV}/lib/python2.7/_sysconfigdata.py
Następnie edytuj swoją kopię na $ {VIRTUAL_ENV} /lib/python2.7/_sysconfigdata.py
Usunąłem wszystkie wystąpienia „-mno-fused-madd”, a następnie kompilacje działały w tym virtualenv.
Nie wymaga korzenia!
źródło
Dla mnie złe flagi zostały wyraźnie podane w pliku Makefile pakietu. Musiałem więc edytować plik makefile, aby usunąć nierozpoznaną flagę z błędnego pakietu.
źródło
Uaktualnienie Homebrew i instalacja unixodbc rozwiązało to dla mnie
źródło