Проблемы с pip install numpy-RuntimeError: сломанная цепочка инструментов: не удается связать простую программу C


Я пытаюсь установить numpy (и scipy и matplotlib) в virturalenv.

Я продолжаю получать эти ошибки, хотя:

RuntimeError: Broken toolchain: cannot link a simple C program

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

у меня есть инструменты командной строки для Xcode установлен

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

Я на Mac OSX 10.9 С помощью brew установлен python

Edit
Да, пытаюсь установить с помощью pip.
В целом вывод очень большой (>400 линий)

вот его часть:

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
11 62

11 ответов:

в то время как это некрасиво, это, кажется, работает

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

обратите внимание, что если вы получаете эту ошибку для пакета, отличного от numpy, (например, lxml) укажите это имя пакета вместо numpy в конце commnd.

Я видел аналогичную проблему, которую кто-то имел с установкой драгоценного камня

Ruby Gem установить Json не удается на Mavericks и Xcode 5.1-неизвестный аргумент: '- multiply_definedsuppress'

это только временное решение, на какой-то момент параметры компилятора должны быть исправлены

проблема в том, что вы не можете скомпилировать.

во-первых, убедитесь, что вы приняли новые условия с Xcode. Для этого просто откройте xCode и примите.

затем попробуйте установить gcc с помощью

brew install gcc

наконец, попробуйте установить Numpy с

pip install numpy

надеюсь, что это помогает.

Если вы не хотите использовать sudo (поэтому разрешения и подобные вещи сохраняются при использовании venv), вы можете добавить объявление ARCHFLAGS в свой .bash_profile, и работать как обычно. Это работало для меня с Mavericks и Xcode 5.1, используя с venv:

In ~/.файл:

экспорт ARCHFLAGS=-кто-ошибке=неиспользованный-командная строка-аргумент-жесткий-ошибка-в-будущем

затем просто выполните команду:

pip установить --обновление библиотеки numpy

Я просто должен был открыть XCode и принять соглашение и позволить ему установить инструменты. Затем я вернулся в PyCharm и снова установил numpy без проблем.

для пользователей fedora, которые имеют аналогичную проблему попробуйте установить эти packeges:

(если не использовать python3 используйте python-devel и pip вместо 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

попробуйте

sudo pip3 install numpy

в некоторых случаях после обновления OS X XCode, XCode потребует от пользователя (с правами администратора) принять новую лицензию. Пока лицензия не будет принята, clang и gcc выдадут ошибку при попытке скомпилировать и связать код. Или хотя бы пакеты Python.

Если вы запускаете XCode и принимаете лицензию, ошибки больше не появляются.

по крайней мере, так было для меня.

если вы используете дистрибутив linux, вам может понадобиться компилятор C, особенно если вы видите строки журнала telltale, такие как sh: gcc: command not found. Вы можете следовать инструкциям здесь, который я резюмировал ниже:

  • Fedora, Red Hat, CentOS или Scientific Linux

    # yum groupinstall 'Development Tools'

  • Debian или Ubuntu Linux

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

затем вы можете попробовать запустить:

sudo pip install numpy

для Docker (Alpine) и Python 3.x это сработало для меня:

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

вышеизложенное работало для меня только после установки python3-dev.

Это означает, что он не может найти компилятор Си. Попробуйте установить компилятор gcc, если не удается связать другой компилятор.

на Fedora 22 это было решено путем обновления самого pip: sudo pip install --upgrade pip