Проблемы с 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 ответов:
в то время как это некрасиво, это, кажется, работает
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install --upgrade numpy
обратите внимание, что если вы получаете эту ошибку для пакета, отличного от numpy, (например, lxml) укажите это имя пакета вместо
numpy
в конце commnd.Я видел аналогичную проблему, которую кто-то имел с установкой драгоценного камня
это только временное решение, на какой-то момент параметры компилятора должны быть исправлены
проблема в том, что вы не можете скомпилировать.
во-первых, убедитесь, что вы приняли новые условия с 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