pip install numpy 관련 문제-RuntimeError : Broken toolchain : cannot link a simple C program


98

virturalenv에 numpy (및 scipy 및 matplotlib)를 설치하려고합니다.

그래도 이러한 오류가 계속 발생합니다.

RuntimeError: Broken toolchain: cannot link a simple C program

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1

xcode 용 명령 줄 도구가 설치되어 있습니다.

$ which gcc
/usr/bin/gcc
$ which cc
/usr/bin/cc

저는 Mac OSX 10.9에서 brew 설치된 Python을 사용하고 있습니다.

편집
예, pip로 설치하려고합니다.
전체 역 추적은 거대합니다 (> 400 줄).

다음은 그 섹션입니다.

C compiler: 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



compile options: '-Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -Inumpy/core/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c'

cc: _configtest.c

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

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

failure.

removing: _configtest.c _configtest.o

Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/setup.py", line 192, in <module>

    setup_package()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/setup.py", line 185, in setup_package

    configuration=configuration )

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/core.py", line 169, in setup

    return old_setup(**new_attr)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup

    dist.run_commands()

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands

    self.run_command(cmd)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command

    cmd_obj.run()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/egg_info.py", line 10, in run

    self.run_command("build_src")

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command

    self.distribution.run_command(command)

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command

    cmd_obj.run()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 153, in run

    self.build_sources()

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 164, in build_sources

    self.build_library_sources(*libname_info)

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 299, in build_library_sources

    sources = self.generate_sources(sources, (lib_name, build_info))

  File "/Users/bdhammel/Documents/research_programming/julia_env/build/numpy/numpy/distutils/command/build_src.py", line 386, in generate_sources

    source = func(extension, build_dir)

  File "numpy/core/setup.py", line 674, in get_mathlib_info

    raise RuntimeError("Broken toolchain: cannot link a simple C program")

RuntimeError: Broken toolchain: cannot link a simple C program

1
RuntimeError어떤 명령이 실패하는지 확인할 수 있도록 줄 위에 여러 줄을 표시 하십시오. 또한 pip소스 를 통해 또는 직접 빌드하여 설치 하고 있습니까?
MattDMo 2014 년

Rodger that, 지금 편집 됨
Ben

Lol @ "간단한 C 프로그램을 연결할 수 없습니다". 그런 말도 안돼!
Cameron Hudson

답변:


77

추악하지만 작동하는 것처럼 보입니다.

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install --upgrade numpy

numpy 이외의 패키지 (예 : lxml)에 대해이 오류가 발생하는 경우 명령 numpy끝 대신 패키지 이름을 지정 하십시오.

누군가가 gem을 설치하는 것과 비슷한 문제를 보았습니다.

Ruby Gem 설치 Json이 Mavericks 및 Xcode 5.1에서 실패 함-알 수없는 인수 : '-multiply_definedsuppress'

이것은 일시적인 수정일 뿐이며, 어떤 시점에서 컴파일러 옵션을 수정해야합니다.


1
@Ben : FWIW, 동일한 문제가 있습니다 (brew를 사용하지 않음). Xcode를 5.1로 업데이트 한 후 나타납니다. 그러나 추악하지만 이것이 답인 것처럼 보입니다 (현재로서는).
orome

2
XCode 5.1 릴리스 정보에 설명이 있습니다 .
badzil 2014

unused-command-line-argument-hard-error-in-futureYosemite에서 최신 Xcode 가 여전히 필요합니까? 그것 없이는 (적어도 내가 지친 패키지에 대해서는) 일이 작동하는 것 같습니다.
orome

누구든지 Windows 솔루션이 있습니까?
Zack Plauché

90

Docker (Alpine) 및 Python 3.x의 경우 이것은 나를 위해 일했습니다.

RUN apk update
RUN apk add make automake gcc g++ subversion python3-dev

15
docker python3 알파인 이미지를 사용하는 모든 사람에게 이것이 해결책입니다.
xssChauhan

4
apk update첫 번째가 필요 했고 그렇지 않으면 ERROR: unsatisfiable constraints메시지를 받았습니다 .
yair

정말 고맙습니다!
Amorphous

이것은 도커 python2 알파인 이미지의 솔루션이기도합니다.
Eduard

4
gcc g++ make python3-devnumpy / nmslib에 대해서만 알파인에서이 작업을 수행 할 수있었습니다 . 이 특정 문제의 원인은 누락 된 C ++ 컴파일러를 것 같다 g++(이 있다는 오류로 보이는 gccmake이미 설치되어 있습니다). numpy빌드 의 다른 중요한 부분은 함께 제공되는 python3 헤더입니다 python3-dev.
ThisGuyCantEven

16

문제는 컴파일 할 수 없다는 것입니다.

먼저 Xcode의 새로운 이용 약관에 동의했는지 확인하십시오. 이렇게하려면 xCode를 열고 수락하면됩니다.

그런 다음 gcc를 설치하십시오.

brew install gcc

마지막으로 Numpy를 다음과 같이 설치하십시오.

pip install numpy

도움이 되었기를 바랍니다.


이것은 나를 위해 일했습니다. 문제는 xcode를 열지 않았고 이용 약관에 동의하지 않았습니다.
스티븐스

Big Sur 베타를 실행하는 경우 : (1) 터미널 유형 (3) 에 Xcode 12.2 베타 3 용 명령 줄 도구 (2)를 다운로드하여 설치합니다 (4)sudo xcode-select --switch /Library/Developer/CommandLineToolsbrew install gccpip install numpy
Felipe

9

sudo를 사용하지 않으려면 (venv를 사용할 때 권한 및 이와 같은 것이 보존 됨) ARCHFLAGS 선언을 .bash_profile에 추가하고 정상적으로 실행할 수 있습니다. 이것은 venv와 함께 사용하는 Mavericks 및 Xcode 5.1에서 저에게 효과적이었습니다.

~ / .bash_profile에서 :

ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future 내보내기

그런 다음 다음 명령을 실행하십시오.

pip 설치-numpy 업그레이드


4
sudo위는 VIRTUALENV에없이 실행할 수 있습니다, 시스템 전체 설치입니다
에렌하기 Guven

5

XCode를 열고 계약에 동의하고 도구를 설치하기 만하면됩니다. 그런 다음 PyCharm으로 돌아가서 문제없이 numpy를 다시 설치했습니다.


5

Linux 배포판을 실행하는 경우 C 컴파일러가 필요할 수 있습니다. 특히 sh: gcc: command not found. 당신의 지시에 따를 수 있습니다 여기에 내가 아래에 요약했습니다 :

  • Fedora, Red Hat, CentOS 또는 Scientific Linux

    # yum groupinstall 'Development Tools'

  • Debian 또는 Ubuntu Linux

    $ sudo apt-get update $ sudo apt-get install build-essential manpages-dev

그런 다음 다시 실행할 수 있습니다.

sudo pip install numpy

4

비슷한 문제가있는 fedora 사용자의 경우 다음 패키지를 설치해보십시오.

(python3을 사용하지 않는 경우 pip3 대신 python-devel 및 pip 사용)

sudo dnf install python3-devel
sudo dnf install make automake gcc gcc-c++ gcc-gfortran
sudo dnf install redhat-rpm-config
sudo dnf install subversion

다음 시도

sudo pip3 install numpy

2

경우에 따라 OS X에서 XCode를 업그레이드 한 후 XCode는 사용자 (관리자 권한이있는)가 새 라이선스를 수락하도록 요구합니다. 라이센스가 승인 될 때까지 clang 및 gcc는 코드를 컴파일하고 링크하려고 할 때 오류를 발행합니다. 또는 적어도 파이썬 패키지.

XCode를 시작하고 라이센스에 동의하면 오류가 더 이상 나타나지 않습니다.

적어도 이것은 나에게 해당됩니다.


1

즉, C 컴파일러를 찾을 수 없습니다. 다른 컴파일러 연결이 실패하면 gcc 컴파일러를 설치해보십시오.


1

제 경우에는 도커 빌드 중에 발생했습니다. 문제는 기본 이미지가 특정 파이썬 버전으로 수정되지 않았고 numpy가 새 버전으로 컴파일 할 수 없다는 것입니다.

FROM python:3-slim  # BAD

다음으로 변경 한 후 작동했습니다.

FROM python:3.8-slim  # GOOD

버전을 수정하는 것을 잊지 마십시오! :-)


오늘도 똑같은 일이 생겼습니다. 3.9.0에서 c 컴파일러 + 관련 make 유틸리티를 제거한 것처럼 보입니다.
PF1


0

Fedora 22에서는 pip 자체를 업데이트하여 해결되었습니다. sudo pip install --upgrade pip

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