clang hatası: bilinmeyen argüman: '-mno-fused-madd' (python paketi yükleme hatası)


272

psycopg2Mavericks 10.9 üzerinde pip üzerinden yüklemeye çalışırken aşağıdaki hatayı alıyorum :

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

Nasıl devam edeceğinizden ve bu özel hatayı burada ve başka yerlerde aradığınızdan emin değilim. Herhangi bir yardım çok takdir!

İşte pip'in tam çıktısı:

$ 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

1
Bir C kütüphanesi oluştururken de aynı hatayla karşılaştım: clang: error: unknown argüman: '-mno-fused-madd' ...
huync

10
Bu sorun, sadece psycopg2 değil, bir C modülü içeren herhangi bir Python paketi ile oluşur.
alastair

Yanıtlar:


440

Aşağıdaki ortam değişkenlerini derlemeden önce ayarlayarak clang'a bir hata olarak yükselmemesini söyleyebilirsiniz:

export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments

O zaman pip install psycopg2çalışmalı.

Ben de denerken aynısını yaptım pip install lxml.

Düzenleme: süper kullanıcı olarak yüklüyorsanız (ekleme yapmaya çalışıyorsanız büyük olasılıkla /Library/Python/2.7/site-packages, daha sonra kendiniz yüklediğiniz diğer Python dağıtımlarından ziyade OS X ile birlikte gelen yerel Apple fabrikada yüklenmiş Python dağıtımı ), aşağıdaki yorumlarda @Thijs Kuipers tarafından açıklandığı gibi yapmanız gerekir:

sudo -E pip install psycopg2

veya eşdeğerini, yerine başka bir paket adı koyabilirsiniz psycopg2.

GÜNCELLEME [2014-05-16]: Apple bu sorunu güncellenmiş sistem Pythons (2.7, 2.6 ve 2.5) ile düzeltti, bu OS X 10.9.3nedenle en son Mavericks ve kullanırken geçici çözüm gerekli değildir Xcode 5.1+. Ancak, OS X 10.8.xşu anda, Xcode 5.1+orada kullanıyorsanız, (Mountain Lion, şu anda 10.8.5) için geçici çözüm hala gereklidir .


2
greenletPip ile yükleme bu sorun vardı . Bu düzeltildi, teşekkürler.
jbrown

1
Bu benim için acil bir çözüm olarak çalıştı, teşekkürler! Sorunun kaynağı hakkında açıklama için Paul Kehrer'in cevabına bakınız.
tino

5
Kök olarak yüklerseniz, kök kullanıcı için bayrakları ayarlamanız gerekir.
ErikAndren

48
@ErikAndren gibi kök yürütme için ortam değişkenleri yüklemek için -Ebayrak eklemek zorunda kaldı sudo. İlk önce yukarıda exportbelirtilen iki ifade, ardından gelir sudo -E doSomething.
Thijs Kuipers

1
Yastık ile hayatımı kurtardım. Teşekkürler!
14'te Sloy

76

Güncelleme: 10.9.3, sistem CPython ile ilgili sorunu giderir.

Bunun nedeni, bugün Xcode 5.1 ile gelen ve birçok insanı etkileyen Apple'ın en son clang güncellemesinden kaynaklanıyor, umarım yakında bir düzeltme görünecektir.

Güncelleme: Bu kadar dikkat çekmesini beklemiyordum, ancak daha fazla ayrıntı var: clang 3.4 Apple, varsayılanları bilinmeyen bayraklarda hataya gönderiyor, ancak CPython, orijinal olarak derlendiği aynı bayrak kümesini kullanarak modüller oluşturuyor. Sistem CPython, clang tarafından bilinmeyen birkaç bayrakla derlendi ve bu da bu soruna neden oldu. Geçerli Mavericks (10.9.2) CPython derleme bayrakları şunlardır:

-I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -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

Bu sorunu çözmek için birkaç seçeneğiniz vardır:

  • ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-futureDerleme bayraklarınıza ekleyin .
  • Geçmek CFLAGS=""
  • Desteklenmeyen bayrakları sysconfigdata.py dosyasından çıkarın (başka bir yanıtta belirtildiği gibi).
  • Homebrew kullanarak yeni bir python derleyin .
  • Sistem çalışma zamanlarında bu sorunu gidermek için yeniden derlenmiş Python / Ruby'yi içerdiği söylenen bir sonraki OS X güncellemesini bekleyin.

@paul, ah bilgi için teşekkürler. farkında olduğunuz bu hatanın durumu hakkında güncel kalmanın bir yolu var mı? Bir düzeltme hazır olur olmaz clang güncellemek isterim.
tino

2
Bu bir clang hatası değil, Apple'ın bir dağıtım hatası. Apple, clang 3.4 ile uyumsuz ayarlarla oluşturulmuş bir Python sürümünü dağıtmamalıdır. Apple, Python yorumlayıcısını güncelleyerek düzgün şekilde düzeltildi.
Till

Bunu çalıştırarak doğrulayabilirsiniz python-config --cflags. Apple'ın varsayılan Python'unda çalıştırıldığında, clang 3.4 tarafından bilinmeyen seçenekleri gösterecektir.
Till

Xcode 5.1'e güncellediysem bunun bir çözümü var mı? Bu ihracatı yukarıda önerildiği gibi bashrc'ye eklemek sorunu çözmedi.
Sean Danzeiser

Sean'a: Mac bilgisayarımda ~/.bash_profilebashrc'im yok, ancak bu işlemin etkili olması için kabuğu yeniden başlatmanız gerekiyor.
peterjc

63

xCode 5.1

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg2

harika, yastık
takmama

Pip yoluyla psycog2 kurulumu ile ilgili birçok sorun yaşıyordum ve bu benim için sorunu çözdü. Kocaman teşekkürler.
Brandon Aaskov

2
Sudo kullanıyorsanız, sudo'nun ortam değişkenini ayarlamadan önce gitmesi gerekir. (ie, sudo ARCHFLAGS=... pip install ...)
Joe Freeman

Pycrypto kurmak için çalıştı. Teşekkürler!
Chris Sears

15

İşte python kurulumundan bayrağın kaldırılmasını içeren bir çalışma.

Gelen /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.pybirçok yerlerdir -mfused-madd/-mno-fused-madd bayrak ayarlanır.

Bu dosyayı düzenleyin ve derlemenizin çalışması gereken bayrağa ilişkin tüm referansları kaldırın:

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

İlgili dosyaları _sysconfigdata.pycve _sysconfigdata.pyodosyaları da silmeniz gerekir - en azından sistemimde bu dosyalar otomatik olarak yeniden oluşturulmadı:

cd /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
sudo rm _sysconfigdata.pyo _sysconfigdata.pyc

Bu değişiklikleri yapmak için root erişimini kullanmanız gerektiğini unutmayın.


2
Bu gerçekten işe yaradı! _Sysconfigdata.pyc ve _sysconfigdata.pyo
isubuz

4

Ayrıca sistem python'sinin orijinal derleme bayrakları kavramını da düzenledim (@ user3405479 gibi). Bir düzenleyici yerine dosyayı "yerinde" düzenlemek için komut satırı araçlarını kullandım (inode değişiyor). Ayrıca silinmiş bırakmak yerine yeni pyo ve pyc dosyaları derledim.

Aşağıdaki komutlar root olarak çalıştırılır, örneğin altında 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


Apple Python kurulumunu düzeltene kadar, bu en pratik ve kesin çözüm gibi görünüyor. Tüm talimatlar için teşekkürler!
ᴠɪɴᴄᴇɴᴛ

4

Ben postgresql yüklemek için homebrew kullandım ve daha sonra Mavericks sistem tarafından sağlanan python 2.7 içine psycopg2 yüklemek istedim. Bunu işe almak için ben bunu çalıştırdı sonunda:

sudo ARCHFLAGS="-arch x86_64" CFLAGS=-Wunused-command-line-argument-hard-error-in-future pip install psycopg2

2

Bu sorun Xcode 5.1 Sürüm Notları'nda (Derleyici bölümü) tartışıldığı için en azından Apple bunun farkında . Bir sonraki işletim sistemi güncellemesinde güncellenmiş bir Python ve Ruby bekleyin (parmaklar çarpı işareti!). Ayrıca, -Wno-error=unused-command-line-argument-hard-error-in-futurebayrağın geçici bir geçici çözüm olması gerektiğini ve gelecekte ortadan kalkacağını unutmayın (umarım Python sistemi düzeltildikten sonra!).

Benim gibi bir Python paket koruyucusuysanız ve kullanıcılarınızı bunun etrafında çalışma zahmetinden kurtarmak istiyorsanız, işte setup.pydosyanıza giden bir çözüm (ikili tekerlekler / yumurtalar sağlamanın yanı sıra) :

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},
    ...
)

1

Yukarıdaki çözümlerin hiçbiri benim için işe yaramadı. Durumum biraz farklı. Bu hata iletisini aldığımda homebrew üzerinden rdiff-backup yüklemeye çalışıyordum.

Görünüşe göre hem Apple'ın varsayılan python'una (2.7.5 @ / usr / bin / python) hem de Homebrew'un python'una (2.7.6 @ /usr/local/Cellar/python/2.7.6/bin/python) sahibim, ancak hata geliyordu Apple'ın pitonundan.

Sorunu çözmek için, temel olarak python ikili dosyalarını değiştirdim.

Bunu sudo ile yaptım:

  • cp / usr / bin / python / usr / bin / python_orig
  • ln -s /usr/local/Cellar/python/2.7.6/bin/python / usr / bin / python

Ardından, 'brew install rdiff-backup' herhangi bir hata yapmadan başarılı oldu.

Sonunda, her şeyi geri almak için "mv / usr / bin / python_orig / usr / bin / python" yaptım.


1

Muhtemelen Python 2.7.5 kullanıyorsunuz

$ python

Python 2.7.5 (default, Aug 25 2013, 00:04:04)  [GCC 4.2.1 Compatible
Apple LLVM 5.0 (clang-500.0.68)] on darwin

En kolay çözüm www.python.org adresine gidin ve LLVM 5.1 ile uyumlu Python 2.7.6'yı yükleyin.

Sonra eski sanal ortamınızı tost edin, rmvirtualenv {virtual_env_name} .

Sonra yeni bir sanal ortam yapın ..

mkvirtualenv --no-site-packages -p/Library/Frameworks/Python.framework/Versions/2.7/bin/python {virtual_env_name}

bundan sonra pip iyi çalışmalıdır.


Kızartmadan önce eski
env'nizden

1

Amazon Linux [AWS EC2]

Çalışılıyor pip install paramikotarihinde adlı Amazon Linux AMI release 2016.09bana bu SO yayına bağlantı dahil bir hata verdi. Bu yüzden, OP'nin Başlığına uymasa da, cevabı paylaşacağım.

yum install libffi-devel
yum install gcc
yum install openssl-devel
pip install paramiko

Altın!



0

_Sysconfigdata.py düzeltmesindeki değişiklik: sanal ortam kullanın

cp /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py ${VIRTUAL_ENV}/lib/python2.7/_sysconfigdata.py

Ardından kopyanızı $ {VIRTUAL_ENV} /lib/python2.7/_sysconfigdata.py adresinde düzenleyin.

'-Mno-fused-madd' in tüm oluşumlarını kaldırdım ve daha sonra bu virtualenv'de çalışan yapılar oluşturdum.

Kök gerekmez!


0

Benim için, kötü bayraklar paketin Makefile'sinde açıkça verildi. Bu yüzden tanınmayan bayrağı hata ayıklama paketinden kaldırmak için makefile düzenlemek zorunda kaldı.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.