143 votes

Problèmes avec pip install numpy - RuntimeError : Broken toolchain : impossible de lier un simple programme C

J'essaie d'installer numpy (et scipy et matplotlib) dans un virturalenv.

Mais je continue à avoir ces erreurs :

RuntimeError: Broken toolchain: cannot link a simple C program

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

J'ai installé les outils de ligne de commande pour xcode.

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

Je suis sur Mac OSX 10.9 J'utilise un python installé par brew

Editar
Oui, j'essaie d'installer avec pip.
L'ensemble de la traceback est énorme (>400 lignes)

En voici une partie :

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 votes

Veuillez montrer plusieurs des lignes au-dessus de la RuntimeError afin que nous puissions voir quelles commandes échouent. De plus, est-ce que vous installez via pip ou en construisant directement la source ?

0 votes

Rodger ça, édité maintenant

6 votes

Lol @ "ne peut pas lier un simple programme C". Quel culot !

178voto

Willem Bressers Points 1551

Pour Docker (Alpine) et Python 3.x, cela a fonctionné pour moi :

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

85voto

Derrick Shoemake Points 666

C'est laid, mais ça semble fonctionner.

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

Notez que si vous obtenez cette erreur pour un paquet autre que numpy, (tel que lxml), spécifiez le nom de ce paquet à la place de numpy à la fin de la commande.

J'ai vu un problème similaire que quelqu'un rencontrait en installant une gemme.

Ruby Gem install Json échoue sur Mavericks et Xcode 5.1 - argument inconnu : '-multiply_definedsuppress'.

Ce n'est qu'une solution temporaire, à un moment donné, les options du compilateur devront être corrigées.

1 votes

@Ben : FWIW, j'ai le même problème (sans utiliser brew). Il est apparu après la mise à jour de Xcode vers 5.1. Cependant laid, cela semble être la réponse (pour le moment).

2 votes

Il y a une explication dans le Notes de publication de XCode 5.1 .

0 votes

Est unused-command-line-argument-hard-error-in-future toujours nécessaire avec la dernière version de Xcode sous Yosemite ? Les choses semblent fonctionner (au moins pour les paquets que j'ai fatigués) sans lui.

19voto

Desmond Points 1

Le problème est que vous n'arrivez pas à compiler.

Tout d'abord, assurez-vous que vous avez accepté les nouveaux termes et conditions avec Xcode. Pour ce faire, ouvrez simplement xCode et acceptez.

Ensuite, essayez d'installer gcc avec

brew install gcc

Enfin, essayez d'installer Numpy avec

pip install numpy

J'espère que cela vous aidera.

0 votes

Cela a fonctionné pour moi. Le problème est que je n'ai pas ouvert xcode et accepté les termes et conditions.

0 votes

Pour ceux qui courent Big Sur Beta : (1) télécharger et installer Outils de ligne de commande pour Xcode 12.2 beta 3 (2) sur le type de terminal sudo xcode-select --switch /Library/Developer/CommandLineTools (3) brew install gcc (4) pip install numpy

10voto

Brian Points 61

Si vous ne voulez pas utiliser sudo (pour que les permissions et autres soient préservées lorsque vous utilisez venv), vous pouvez ajouter la déclaration ARCHFLAGS à votre .bash_profile, et exécuter normalement. Cela a fonctionné pour moi avec Mavericks et Xcode 5.1 en utilisant venv :

Dans ~/.bash_profile :

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

Ensuite, il suffit d'exécuter la commande :

pip install --upgrade numpy

5 votes

Le site sudo ci-dessus est pour l'installation dans tout le système, peut être exécuté sans dans un virtualenv

8voto

avyk37 Points 176

Si vous utilisez une distribution linux, vous avez peut-être besoin d'un compilateur C, surtout si vous voyez des lignes de journal révélatrices telles que sh: gcc: command not found . Vous pouvez suivre les instructions ici que je résume ci-dessous :

  • 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

Ensuite, vous pouvez essayer de réexécuter :

sudo pip install numpy

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X