clang 오류 : 알 수없는 인수 : '-mno-fused-madd'(파이썬 패키지 설치 실패)


272

psycopg2Mavericks 10.9에서 pip를 통해 설치하려고 할 때 다음 오류가 발생합니다 .

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

진행 방법을 모르고 여기 및 다른 곳 에서이 특정 오류를 검색했습니다. 어떤 도움이라도 대단히 감사합니다!

다음은 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

1
C 라이브러리를 빌드 할 때 동일한 오류가 발생합니다. clang : error : unknown argument : '-mno-fused-madd'...
huync

10
이 문제는 psycopg2뿐만 아니라 C 모듈을 포함하는 모든 Python 패키지에서 발생합니다.
alastair

답변:


440

컴파일하기 전에 다음 환경 변수를 설정하여이 오류를 발생시키지 않도록 clang에 지시 할 수 있습니다.

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

그런 다음 pip install psycopg2작동해야합니다.

노력할 때도 마찬가지 pip install lxml였습니다.

편집 : 수퍼 유저로 설치하는 경우 (추가하려고 할 경우 아마도 /Library/Python/2.7/site-packages나중에 직접 설치 한 다른 Python 배포가 아닌 OS X와 ​​함께 제공되는 기본 Apple 기본 설치 Python 배포판 ), 아래 댓글에 @Thijs Kuipers가 설명 한대로해야합니다.

sudo -E pip install psycopg2

또는 다른 패키지 이름을 대신하여 다른 패키지 이름으로 대체 할 수 있습니다 psycopg2.

업데이트 [2014-05-16] : Apple은 업데이트 된 시스템 Python (2.7, 2.6 및 2.5)에서이 문제를 OS X 10.9.3해결 했으므로 최신 Mavericks 및를 사용할 때 해결 방법이 더 이상 필요하지 않습니다 Xcode 5.1+. 그러나 OS X 10.8.x현재로서는 (현재 마운틴 라이온, 현재 10.8.5) 해결 방법이 필요합니다 Xcode 5.1+.


2
greenletpip로 설치 하는 데이 문제가 발생했습니다 . 고마워요.
jbrown

1
이것은 즉시 수정으로 도움이되었습니다. 감사합니다! 문제의 원인에 대한 설명은 Paul Kehrer의 답변을 참조하십시오.
tino

5
루트로 설치하는 경우 루트 사용자에 대한 플래그를 설정해야합니다.
ErikAndren

48
@ErikAndren과 같이 루트 실행을 위해 환경 변수를로드 하려면 -E플래그 를 추가해야했습니다 sudo. 먼저 위에서 언급 한 두 export문장 다음에 sudo -E doSomething.
Thijs Kuipers

1
베개로 내 목숨을 구했습니다. 감사!
Sloy

76

업데이트 : 10.9.3은 시스템 CPython의 문제를 해결합니다.

이것은 현재 Xcode 5.1과 함께 제공되는 Apple의 최신 clang 업데이트로 인해 많은 사람들에게 영향을 미치므로 곧 수정이 나타날 것입니다.

업데이트 : 이것은 많은 관심을 끌 것으로 기대하지는 않았지만 자세한 내용은 다음과 같습니다 .clang 3.4 Apple은 기본적으로 알 수없는 플래그에서 오류를 표시하지만 CPython은 원래 컴파일 된 것과 동일한 플래그 세트를 사용하여 모듈을 빌드합니다. 시스템 CPython은 clang에 의해 알려지지 않은 여러 플래그로 컴파일되어이 문제점을 발생시킵니다. 다음은 현재 Mavericks (10.9.2) CPython 컴파일 플래그입니다.

-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

이 문제를 해결하려면 몇 가지 옵션이 있습니다.

  • ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future컴파일 플래그에 추가 하십시오.
  • 통과하다 CFLAGS=""
  • sysconfigdata.py에서 지원되지 않는 플래그를 제거하십시오 (다른 답변에서 언급했듯이).
  • homebrew를 사용하여 새 파이썬을 컴파일하십시오 .
  • 시스템 런타임에 대해이 문제를 제거하기 위해 다시 컴파일 된 Python / Ruby를 포함한다는 소문이있는 다음 OS X 업데이트를 기다립니다.

@ paul, 아 정보 감사합니다. 알고있는이 버그의 상태를 최신 상태로 유지할 수있는 방법이 있습니까? 수정 프로그램을 사용할 수있게 되 자마자 clang을 업데이트하고 싶습니다.
tino

2
그것은 clang 버그가 아니며 Apple의 배포 버그입니다. Apple은 clang 3.4와 호환되지 않는 설정으로 빌드 된 Python 버전을 배포해서는 안됩니다. Apple이 Python 인터프리터를 업데이트하여 올바르게 수정했습니다.
까지

을 실행하여이를 확인할 수 있습니다 python-config --cflags. Apple의 기본 Python에서 실행될 때 clang 3.4에 알려지지 않은 옵션이 표시됩니다.
까지

Xcode 5.1로 이미 업데이트 한 경우 이에 대한 해결책이 있습니까? 위에서 제안한대로 bashrc에 내보내기를 추가해도 문제가 해결되지 않는 것 같습니다.
Sean Danzeiser

Sean : 내 Mac ~/.bash_profile에서는 bashrc가 없지만 셸을 다시 시작하여 적용해야합니다.
peterjc

63

x 코드 5.1

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

베개를 설치하는 데 도움이됩니다
Nyambaa

pip를 통해 psycog2를 설치하는 데 많은 문제가 있었으며 문제가 해결되었습니다. 큰 감사합니다.
Brandon Aaskov

2
sudo를 사용하는 경우 환경 변수를 설정하기 전에 sudo를 이동해야합니다. (즉, sudo ARCHFLAGS=... pip install ...)
Joe Freeman

pycrypto 설치를 위해 일했습니다. 감사!
Chris Sears

15

다음은 파이썬 설치에서 플래그를 제거하는 해결 방법입니다.

에서 /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_sysconfigdata.py여러 장소 -mfused-madd/의 -mno-fused-madd플래그가 설정됩니다.

이 파일을 편집하고 컴파일이 작동해야하는 해당 플래그에 대한 모든 참조를 제거하십시오.

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

해당 파일 _sysconfigdata.pyc_sysconfigdata.pyo파일도 삭제해야합니다 . 적어도 내 시스템에서는 이러한 파일이 자동으로 다시 작성되지 않았습니다.

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

변경하려면 루트 액세스 권한을 사용해야합니다.


2
이것은 실제로 효과가있었습니다! 나는 _sysconfigdata.pyc과 _sysconfigdata.pyo 모두 제거했다
isubuz

4

또한 @ user3405479와 같이 시스템 파이썬의 원래 컴파일 플래그 개념을 편집했습니다. 편집기 대신 명령 줄 도구를 사용하여 파일을 "제자리에서"편집했습니다 (아이 노드는 변경됨). 또한 새 pyo 및 pyc 파일을 삭제하지 않고 컴파일했습니다.

다음 명령은 루트로 실행됩니다 (예 : 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


애플이 파이썬 설치를 고칠 때까지 이것은 가장 실용적이고 결정적인 솔루션으로 보인다. 완전한 지침에 감사드립니다!
ᴠɪɴᴄᴇɴᴛ

4

homebrew를 사용하여 postgresql을 설치 한 다음 Mavericks의 시스템 제공 Python 2.7에 psycopg2를 설치하려고했습니다. 그것을 작동시키기 위해 나는 이것을 실행했다.

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

2

이 문제는 Xcode 5.1 릴리스 정보 (컴파일러 섹션) 에서 논의되므로 최소한 Apple은이를 알고 있습니다. 다음 OS 업데이트에서 업데이트 된 Python 및 Ruby가 필요합니다 (손가락이 넘었습니다!). 또한 -Wno-error=unused-command-line-argument-hard-error-in-future플래그는 일시적인 해결책이며 미래에는 사라질 것입니다 (Python 시스템이 수정 된 후).

나와 같은 Python 패키지 유지 관리 자이고 사용자 에게이 문제를 해결하는 번거 로움을 저장하려는 경우 setup.py파일에 들어가는 솔루션 (이진 바퀴 / 계란 제공 외에도)이 있습니다.

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

위의 해결책 중 어느 것도 나를 위해 일하지 않았습니다. 내 상황은 약간 다릅니다. 이 오류 메시지가 나타나면 homebrew를 통해 rdiff-backup을 설치하려고했습니다.

분명히 Apple의 기본 파이썬 (2.7.5 @ / usr / bin / python)과 Homebrew의 파이썬 (2.7.6 @ /usr/local/Cellar/python/2.7.6/bin/python)이 있지만 오류가 발생했습니다. 애플의 파이썬에서.

문제를 해결하기 위해 기본적으로 파이썬 바이너리를 전환했습니다.

나는 sudo를 통해 이것을했다 :

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

그런 다음 오류없이 'brew install rdiff-backup'이 성공했습니다.

마지막으로, "mv / usr / bin / python_orig / usr / bin / python"을 사용하여 모든 것을 되돌 렸습니다.


1

당신은 아마 파이썬 2.7.5에 있습니다

$ 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

가장 쉬운 솔루션은 www.python.org로 이동하여 LLVM 5.1과 호환되는 Python 2.7.6을 설치하십시오.

그런 다음 이전 가상 환경을 토스트하십시오 rmvirtualenv {virtual_env_name}.

그런 다음 새로운 가상 환경을 만드십시오.

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

이 후 pip는 잘 작동합니다.


를 토스트하기 전에 이전 ENV의 요구 사항을 추출하고 싶어 할 수 있음) 핍 동결> requirements.txt
GreenAsJade

1

아마존 리눅스 [AWS EC2]

에 노력 pip install paramiko에 대한 것은 Amazon Linux AMI release 2016.09저에게이 SO 게시물에 대한 링크가 포함 된 오류를했다. 따라서 OP의 제목에 맞지 않더라도 답변을 공유하겠습니다.

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

골든!



0

_sysconfigdata.py 수정에 대한 변형 : 가상 환경 사용

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

그런 다음 $ {VIRTUAL_ENV} /lib/python2.7/_sysconfigdata.py에서 사본을 편집하십시오.

나는 '-mno-fused-madd'의 모든 발생을 제거하고 그 virtualenv에서 작동했습니다.

루트가 필요 없습니다!


0

나를 위해 패키지의 Makefile에 잘못된 플래그가 명시 적으로 주어졌습니다. 따라서 오류 파일에서 인식 할 수없는 플래그를 제거하기 위해 makefile을 편집해야했습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.