Я пытаюсь установить 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, использую установленный питон
Изменить
Да, пытаюсь установить с помощью 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
python
numpy
virtualenv
pip
Бен
источник
источник
RuntimeError
строкой, чтобы мы могли видеть, какие команды не работают. Кроме того, вы производите установку черезpip
исходный код или напрямую?Ответы:
Хотя это уродливо, похоже, работает
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install --upgrade numpy
Обратите внимание: если вы получаете эту ошибку для пакета, отличного от numpy (например, lxml), укажите это имя пакета, а
numpy
не в конце команды.Я видел похожую проблему с установкой драгоценного камня
Ошибка установки Ruby Gem Json на Mavericks и Xcode 5.1 - неизвестный аргумент: '-multiply_definedsuppress'
Это только временное исправление, в какой-то момент придется исправить параметры компилятора.
источник
unused-command-line-argument-hard-error-in-future
еще нужен последний Xcode под Yosemite? Вроде бы все работает (по крайней мере, с пакетами, которые мне надоели) без него.Для Docker (Alpine) и Python 3.x это сработало для меня:
источник
apk update
первый, иначе я получил быERROR: unsatisfiable constraints
сообщение.gcc g++ make python3-dev
для numpy / nmslib. Причина этого конкретного вопроса , кажется, недостающее C ++ компилятораg++
(это выглядит ошибка , чтоgcc
иmake
уже установлено). Другой важной частьюnumpy
сборки являются заголовки python3, которые поставляются сpython3-dev
.Проблема в том, что вы не можете скомпилировать.
Во-первых, убедитесь, что вы приняли новые Условия использования Xcode. Для этого просто откройте xCode и согласитесь.
Затем попробуйте установить gcc с помощью
Наконец, попробуйте установить Numpy с помощью
Надеюсь это поможет.
источник
sudo xcode-select --switch /Library/Developer/CommandLineTools
(3)brew install gcc
(4)pip install numpy
Если вы не хотите использовать sudo (поэтому разрешения и подобные вещи сохраняются при использовании venv), вы можете добавить объявление ARCHFLAGS в свой .bash_profile и запустить его как обычно. Это сработало для меня с Mavericks и Xcode 5.1 с использованием venv:
В ~ / .bash_profile:
Затем просто запустите команду:
источник
sudo
выше для установки общесистемной, может работать без в virtualenvМне просто нужно было открыть XCode, принять соглашение и позволить ему установить инструменты. Затем я вернулся к PyCharm и снова без проблем установил numpy.
источник
Если вы используете дистрибутив Linux, вам может потребоваться компилятор C, особенно если вы видите контрольные строки журнала, такие как
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
Затем вы можете попробовать выполнить повторный запуск:
источник
Для пользователей Fedora, у которых возникла аналогичная проблема, попробуйте установить эти пакеты:
(если не используете python3, используйте python-devel и pip вместо pip3)
тогда попробуйте
источник
В некоторых случаях после того, как OS X обновит XCode, XCode потребует от пользователя (с правами администратора) принять новую лицензию. Пока лицензия не будет принята, clang и gcc выдадут ошибку при попытке скомпилировать и связать код. Или, по крайней мере, пакеты python.
Если вы запустите XCode и примете лицензию, ошибки больше не появятся.
По крайней мере, так было со мной.
источник
Это означает, что он не может найти ваш компилятор C. Попробуйте установить компилятор gcc, если компоновка другого компилятора не удалась.
источник
В моем случае это произошло во время сборки докера. Проблема заключалась в том, что базовое изображение не было привязано к определенной версии Python, и numpy не мог скомпилировать с новым.
FROM python:3-slim # BAD
После того, как я изменил его на следующее, все заработало:
FROM python:3.8-slim # GOOD
Не забудьте исправить свои версии! :-)
источник
Вышеупомянутое сработало для меня только после установки python3-dev.
источник
В Fedora 22 это было решено обновлением самого pip:
sudo pip install --upgrade pip
источник