programing

pip install numpy 문제 - RuntimeError: 깨진 툴체인: 단순한 C 프로그램을 연결할 수 없습니다.

minimums 2023. 10. 20. 13:31
반응형

pip install numpy 문제 - RuntimeError: 깨진 툴체인: 단순한 C 프로그램을 연결할 수 없습니다.

가상 환경에 numpy(및 skipy 및 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

맥 OSX 10.9 브루 설치 파이썬 사용 중

편집
예, 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

도커(알파인) 및 Python 3.x의 경우 다음과 같은 이점이 있었습니다.

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

보기 흉하긴 하지만 효과가 있는 것 같습니다.

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

numpy가 아닌 다른 패키지에 대해 이 오류가 발생하는 경우(예: lxml) 다음 대신 해당 패키지 이름을 지정합니다.numpy명령이 끝날때쯤에

보석을 설치할 때 누군가가 겪는 비슷한 문제를 보았습니다.

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

이것은 일시적인 수정일 뿐이며, 어느 시점에서 컴파일러 옵션은 수정되어야 할 것입니다.

문제는 당신이 컴파일을 할 수 없다는 것입니다.

먼저 Xcode가 적용된 새로운 약관에 동의했는지 확인합니다.이렇게 하려면 xCode를 열고 수락하기만 하면 됩니다.

그럼 gcc 를 설치해보세요.

brew install gcc

마지막으로 Numpy를 설치해 보십시오.

pip install numpy

도움이 되길 바랍니다.

sudo를 사용하지 않으려면(venv 사용 시 사용 권한 등이 유지됨) .bash_profile에 ARCHFLAGS 선언을 추가하고 정상대로 실행할 수 있습니다.이것은 매버릭스와 Xcode 5.1에서 venv와 함께 작동했습니다.

~/.bash_profile에서:

ARCHFLAGS=-Wno-error= unused-command-line-argument-hard-error-infuture

그런 다음 명령만 실행하면 됩니다.

pip 설치 --upgrade numpy

만약 당신이 리눅스 배포판을 실행하고 있다면, 당신은 C 컴파일러가 필요할지도 모릅니다, 만약 당신이 다음과 같은 tellale log line을 본다면,sh: gcc: command not found. 여기에 나와 있는 지침을 따를 수 있습니다. 아래에 요약해 두었습니다.

  • Fedora, Red Hat, CentOS 또는 Scientific Linux

    # yum groupinstall 'Development Tools'

  • 데비안 또는 우분투 리눅스

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

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

sudo pip install numpy

제 경우에는 도커 제작 중에 이런 일이 발생했습니다.문제는 베이스 이미지가 특정 파이썬 버전으로 고정되어 있지 않고 numpy가 새로운 버전으로 컴파일할 수 없다는 것이었습니다.

FROM python:3-slim  # BAD

다음과 같이 변경한 후 작동했습니다.

FROM python:3.8-slim  # GOOD

버전을 수정하는 것을 기억하세요! :-)

저는 단순히 XCode를 열고 계약을 수락하고 툴을 설치하게 하면 되었습니다.그리고 다시 PyCharm으로 돌아가서 아무 문제없이 numpy를 다시 설치했습니다.

Fedora 22에서는 Pip 자체를 업데이트함으로써 해결되었습니다.sudo pip install --upgrade pip

비슷한 문제를 겪고 있는 페도라 사용자의 경우 다음 패키지를 설치해 보십시오.

(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

OS X가 XCode를 업그레이드한 후 XCode는 관리 권한이 있는 사용자에게 새 라이센스를 승인하도록 요구하는 경우가 있습니다.라이센스가 승인될 때까지 clang과 gcc는 코드를 컴파일하고 링크하려고 할 때 오류를 발생시킵니다.아니면 파이썬 패키지라도.

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

적어도 저는 그랬습니다.

오류:

RuntimeError: 깨진 툴체인: 단순한 C 프로그램을 링크할 수 없습니다.

당신의 C 컴파일러를 찾을 수 없거나 간단한 C 프로그램을 연결하는 데 문제가 발생했음을 의미합니다.

데모 도커 워크스루를 통해 Python2/pip에서 오류를 토해낼 수 있습니다.

이 데모를 읽기 전용 도커 이미지 안에 보관하는 것은 OS 파괴 루트 레벨 명령을 실행하는 것을 두려워하지 않고 매번 새로 시작하는 데 도움이 됩니다.

#download a read only docker image that doesn't have gcc installed:
docker pull frolvlad/alpine-python2

#check the version of pip and python:
docker run --rm frolvlad/alpine-python2 pip --version
#pip 20.3.4 from /usr/lib/python2.7/site-packages/pip (python 

pip install numpy를 시도해 보십시오. gcc가 필요하기 때문에 할 수 없습니다.

docker run --rm frolvlad/alpine-python2 pip install --user numpy
#...
#RuntimeError: Broken toolchain: cannot link a simple C program

gcc가 확실히 설치되지 않았습니다.

docker run --rm frolvlad/alpine-python2 which gcc
#empty output, gcc is not installed

설치하면 바이너리 /usr/bin/gcc가 존재합니다.

docker run --rm frolvlad/alpine-python2 sh -c "apk update && apk add make automake gcc g++ subversion python2-dev && which gcc"
#/usr/bin/gcc

터미널 명령을 쌓아서 죄송합니다. 그러나 이 이미지는 읽기 전용 이미지이므로 모든 작업을 매번 다시 수행해야 합니다.

이제 pip은 gcc를 사용하고 python2에 numpy를 설치할 수 있습니다.

docker run --rm frolvlad/alpine-python2 sh -c "apk update && apk add make automake gcc g++ subversion python2-dev && pip install numpy && python -c 'import numpy as np; print(np.__name__, np.__version__)'"
# ...
#Successfully installed numpy-1.16.6
#('numpy', '1.16.6')

좋은 곳에 있으니 도커 이미지를 얼려서 이름을 바꾸세요.

docker images
#choose the most recent container id: 751420a548c1:latest and rename it:
docker commit 751420a548c1:latest frolvlad/alpine-python2_numpy

이제 python2, pip 및 업데이트된 1.16.6 numpy가 포함된 새로운 읽기 전용 도커 이미지가 2005년과 같은 기존 python2 소프트웨어를 실행할 준비가 되었습니다.

docker run --rm frolvlad/alpine-python2_numpy python -c 'import numpy as np; print(np.__name__, np.__version__)'
#('numpy', '1.16.6')

또는 위의 명령을 보다 단순하고 순차적으로 수행할 수 있습니다.

사용.-it에 깃발을 꽂다docker run즉, 도커 이미지에서 대화형 터미널을 여는 것입니다.

$ docker run -it frolvlad/alpine-python2_numpy sh
/ > python2 -c 'import numpy as np; print(np.__version__)'
1.16.6
/ > which gcc
/usr/bin/gcc
/ > python2 -c 'import numpy as np; print(np.zeros(3))'
[0. 0. 0.]
/ > echo "headward free now to rise"; exit;

python2 패키지가 고대 역사에 더 포함됨에 따라 pip은 개인 python2 패키지 저장소 URL을 가리키도록 구성되어야 합니다.

도커 파일에서 핍 대신 콘다를 사용하여 이 문제를 해결했습니다.FROM continuumio/miniconda3:latest

오래된 스레드, 내 문제는 Xcode가 설치되어 있지 않다는 것이었습니다.다음이 해결했습니다.

xcode-select --install

언급URL : https://stackoverflow.com/questions/22388519/problems-with-pip-install-numpy-runtimeerror-broken-toolchain-cannot-link-a

반응형