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
python
numpy
virtualenv
pip
Ben
fonte
fonte
RuntimeError
linha, para que possamos ver quais comandos estão falhando. Além disso, você está instalando viapip
ou criando a fonte diretamente?Respostas:
Embora seja feio, parece funcionar
Observe que se você estiver obtendo este erro para um pacote diferente de numpy, (como lxml) especifique esse nome de pacote em vez de
numpy
no 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
fonte
unused-command-line-argument-hard-error-in-future
Ainda é necessário com o Xcode mais recente no Yosemite? As coisas parecem funcionar (pelo menos para os pacotes que cansei) sem ele.Para Docker (Alpine) e Python 3.x, isso funcionou para mim:
fonte
apk update
primeiro, caso contrário, receberia umaERROR: unsatisfiable constraints
mensagem.gcc g++ make python3-dev
para numpy / nmslib. A causa deste problema particular parece ser o compilador c ++ ausenteg++
(parece pelo erro quegcc
emake
já estão instalados). As outras partes importantes danumpy
construção são os cabeçalhos python3 que vêm compython3-dev
.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
Finalmente, tente instalar o Numpy com
Espero que isto ajude.
fonte
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:
Em seguida, basta executar o comando:
fonte
sudo
acima é para instalação em todo o sistema, pode ser executado em um virtualenvEu 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.
fonte
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:
fonte
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)
Então tente
fonte
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.
fonte
Isso significa que ele não consegue encontrar seu compilador C. Tente instalar o compilador gcc se a vinculação de outro compilador falhar.
fonte
O acima funcionou para mim somente após instalar o python3-dev.
fonte
No Fedora 22, isso foi resolvido com a atualização do próprio pip:
sudo pip install --upgrade pip
fonte