Problemas com pip install numpy - RuntimeError: Conjunto de ferramentas quebrado: não é possível vincular um programa C simples


93

Estou tentando instalar o numpy (e scipy e matplotlib) em um virturalenv.

Eu continuo recebendo estes erros:

RuntimeError: Broken toolchain: cannot link a simple C program

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

Eu tenho as ferramentas de linha de comando para o xcode instaladas

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

Estou no Mac OSX 10.9 usando um brew instalado python

Editar
Sim, tentando instalar com pip.
Todo o traceback é enorme (> 400 linhas)

Aqui está uma seção dele:

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
mostre várias das linhas acima da RuntimeErrorlinha, para que possamos ver quais comandos estão falhando. Além disso, você está instalando via pipou criando a fonte diretamente?
MattDMo

Rodger que, editado agora
Ben

Lol @ "não consigo ligar um programa C simples". Que atrevimento!
Cameron Hudson

Respostas:


77

Embora seja feio, parece funcionar

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

Observe que se você estiver obtendo este erro para um pacote diferente de numpy, (como lxml) especifique esse nome de pacote em vez de numpyno final do commnd.

Eu vi um problema semelhante que alguém estava tendo ao instalar uma joia

A instalação Json do Ruby Gem falha no Mavericks e no Xcode 5.1 - argumento desconhecido: '-multiply_definedsuppress'

Esta é apenas uma correção temporária, em algum momento as opções do compilador terão que ser corrigidas


1
@Ben: FWIW, eu tenho o mesmo problema (não usar cerveja). Ele apareceu após a atualização do Xcode para 5.1. Por mais feia que seja, essa parece ser a resposta (por enquanto).
orome

2
Há uma explicação nas notas de lançamento do XCode 5.1 .
badzil de

unused-command-line-argument-hard-error-in-futureAinda é necessário com o Xcode mais recente no Yosemite? As coisas parecem funcionar (pelo menos para os pacotes que cansei) sem ele.
orome

82

Para Docker (Alpine) e Python 3.x, isso funcionou para mim:

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

13
Para quem usa docker python3 alpine image, esta é a solução.
xssChauhan

3
Eu precisava apk updateprimeiro, caso contrário, receberia uma ERROR: unsatisfiable constraintsmensagem.
yair

Muito obrigado!
Amorfo de

Essa também é a solução para a imagem docker python2 alpine.
Eduard

3
Consegui fazer isso em alpine com apenas gcc g++ make python3-devpara numpy / nmslib. A causa deste problema particular parece ser o compilador c ++ ausenteg++ (parece pelo erro que gcce makejá estão instalados). As outras partes importantes da numpyconstrução são os cabeçalhos python3 que vêm com python3-dev.
ThisGuyCantEven

15

O problema é que você não consegue compilar.

Em primeiro lugar, certifique-se de que aceitou os novos Termos e Condições do Xcode. Para fazer isso, basta abrir o xCode e aceitar.

Então, tente instalar o gcc com

brew install gcc

Finalmente, tente instalar o Numpy com

pip install numpy

Espero que isto ajude.


isso funcionou para mim. O problema é que não abri o xcode e aceitei os termos e condições.
Stephens,

9

Se você não quiser usar sudo (portanto, as permissões e coisas assim são preservadas ao usar o venv), você pode adicionar a declaração ARCHFLAGS ao seu .bash_profile e executar normalmente. Isso funcionou para mim com Mavericks e Xcode 5.1 usando com venv:

Em ~ / .bash_profile:

export ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future

Em seguida, basta executar o comando:

pip install - upgrade numpy


4
o sudoacima é para instalação em todo o sistema, pode ser executado em um virtualenv
Eren Güven

5

Eu simplesmente tive que abrir o XCode e aceitar o acordo e deixá-lo instalar as ferramentas. Em seguida, voltei para o PyCharm e instalei o numpy novamente sem problemas.


5

Se você estiver executando uma distribuição Linux, você pode precisar de um compilador C, especialmente se você vir linhas de log reveladoras como sh: gcc: command not found. Você pode seguir as instruções aqui , que resumi abaixo:

  • Fedora, Red Hat, CentOS ou Scientific Linux

    # yum groupinstall 'Development Tools'

  • Debian ou Ubuntu Linux

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

Depois, você pode tentar executar novamente:

sudo pip install numpy

4

Para usuários do fedora que estão tendo um problema semelhante, tente instalar estes pacotes:

(se não estiver usando python3, use python-devel e pip em vez de pip3)

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

Então tente

sudo pip3 install numpy

2

Em alguns casos, após o OS X atualizar o XCode, o XCode exigirá que o usuário (com privilégios administrativos) aceite uma nova licença. Até que a licença seja aceita, o clang e o gcc emitirão um erro ao tentar compilar e vincular o código. Ou pelo menos pacotes python.

Se você iniciar o XCode e aceitar a licença, os erros não aparecerão mais.

Pelo menos, esse foi o meu caso.


1

Isso significa que ele não consegue encontrar seu compilador C. Tente instalar o compilador gcc se a vinculação de outro compilador falhar.



0

No Fedora 22, isso foi resolvido com a atualização do próprio pip: sudo pip install --upgrade pip

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.