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 !

6voto

user1 Points 586

Dans mon cas, cela s'est produit pendant une construction docker. Le problème était que l'image de base n'était pas fixée à une version spécifique de python et numpy ne pouvait pas compiler avec la nouvelle version.

FROM python:3-slim  # BAD

Après l'avoir modifié comme suit, cela a fonctionné :

FROM python:3.8-slim  # GOOD

N'oubliez pas de corriger vos versions ! :-)

5voto

user3589327 Points 51

J'ai simplement dû ouvrir XCode, accepter l'accord et le laisser installer les outils. Je suis ensuite retourné dans PyCharm et j'ai réinstallé numpy sans problème.

5voto

zenperttu Points 373

Sur Fedora 22, cela a été résolu en mettant à jour pip lui-même : sudo pip install --upgrade pip

4voto

Ollegn Points 864

Pour les utilisateurs de fedora qui ont un problème similaire, essayez d'installer ces paquets :

(si vous n'utilisez pas python3, utilisez python-devel et pip au lieu 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

alors essayez

sudo pip3 install numpy

3voto

lukecampbell Points 1733

Dans certains cas, après la mise à niveau de XCode par OS X, XCode demandera à l'utilisateur (avec des privilèges administratifs) d'accepter une nouvelle licence. Jusqu'à ce que la licence soit acceptée, clang et gcc émettront une erreur lors de la tentative de compilation et de liaison du code. Ou au moins les paquets python.

Si vous lancez XCode et acceptez la licence, les erreurs n'apparaissent plus.

Du moins, c'était le cas pour moi.

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