web-dev-qa-db-fra.com

Problèmes avec pip install numpy - RuntimeError: Chaîne d'outils défectueuse: impossible de lier un programme C simple

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

Je continue à avoir ces erreurs cependant:

RuntimeError: Broken toolchain: cannot link a simple C program

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

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

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

Je suis sur Mac OSX 10.9 Utiliser un python installé

Éditer
Oui, j'essaie d'installer avec pip.
L'ensemble de la trace 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
75
Ben

Bien que moche, il 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 paquetage autre que numpy, (tel que lxml), spécifiez ce nom de paquetage à la place de numpy à la fin de la commande.

J'ai vu un problème similaire que quelqu'un avait avec l'installation d'un bijou

L'installation de Ruby Gem sur Json échoue sous 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

73
Derrick Shoemake

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
38
Willem Bressers

Le problème est que vous ne pouvez pas compiler.

Tout d'abord, assurez-vous d'avoir accepté les nouvelles conditions d'utilisation 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 t'aides.

14
Desmond

Si vous ne souhaitez pas utiliser Sudo (les autorisations, etc., sont conservées lors de l'utilisation de venv), vous pouvez ajouter la déclaration ARCHFLAGS à votre .bash_profile et l'exécuter normalement. Cela a fonctionné pour moi avec Mavericks et Xcode 5.1 en utilisant avec venv:

Dans ~/.bash_profile:

export ARCHFLAGS = -Wno-error = argument-en-ligne-de-commande-non-utilisé-dans-le-futur

Ensuite, lancez simplement la commande:

pip installer --upgrade numpy

9
Brian

Je devais simplement ouvrir XCode et accepter l'accord et le laisser installer les outils. Je suis ensuite retourné à PyCharm et ai réinstallé numpy sans aucun problème.

5
user3589327

Pour les utilisateurs de Fedora rencontrant un problème similaire, essayez d’installer les packages:

(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 essaye

Sudo pip3 install numpy
4
Ollegn

Si vous exécutez une distribution Linux, vous aurez peut-être besoin d'un compilateur C, surtout si vous voyez des lignes de journal indicatives comme sh: gcc: command not found. Vous pouvez suivre les instructions ici , que j'ai résumées ci-dessous:

  • Fedora, Red Hat, CentOS ou Linux scientifique

    # 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
4
avyk37

Dans certains cas, après la mise à niveau de Xcode par OS X, ce dernier devra demander à l'utilisateur (avec des privilèges d'administrateur) 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 de code. Ou au moins python paquets.

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

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

2
lukecampbell

Ce qui précède n'a fonctionné pour moi qu'après l'installation de python3-dev.

0
Iliyan Bobev

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

0
zenperttu

Cela signifie qu'il ne peut pas trouver votre compilateur C. Essayez d’installer le compilateur gcc si la liaison avec un autre compilateur échoue.

0
Inc33