I’m trying to install numpy (and scipy and matplotlib) into a virturalenv.
I keep getting these errors though:
RuntimeError: Broken toolchain: cannot link a simple C program ---------------------------------------- Cleaning up... Command python setup.py egg_info failed with error code 1
I have the command line tools for xcode installed
$ which gcc /usr/bin/gcc $ which cc /usr/bin/cc
I’m on Mac OSX 10.9
Using a brew installed python
Edit
Yes, trying to install with pip.
The whole traceback is huge (>400 lines)
Here is a section of it:
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
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
For Docker (Alpine) and Python 3.x this worked for me:
RUN apk update RUN apk add make automake gcc g++ subversion python3-dev
Method 2
While it’s ugly, it appears to work
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install --upgrade numpy
Note that if you are getting this error for a package other than numpy, (such as lxml) specify that package name instead of numpy at the end of the commnd.
I saw a similar issue someone was having with installing a gem
This is only a temporary fix, at some point the compiler options will have to be fixed
Method 3
The problem is that you are unable to compile.
First, make sure that you have accepted the new Terms and Conditions with Xcode. To do this, just open up xCode and accept.
Then, try installing gcc with
brew install gcc
Finally, try to install Numpy with
pip install numpy
Hope this helps.
Method 4
If you don’t want to use sudo (so permissions and things like that are preserved when using venv), you can add the ARCHFLAGS declaration to your .bash_profile, and run as normal. This worked for me with Mavericks and Xcode 5.1 using with venv:
In ~/.bash_profile:
export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future
Then, just run the command:
pip install –upgrade numpy
Method 5
If you are running a linux distribution, you may need a C compiler, especially if you see telltale log lines like sh: gcc: command not found. You can follow the instructions here, which I’ve summarized below:
-
Fedora, Red Hat, CentOS, or Scientific Linux
# yum groupinstall 'Development Tools' -
Debian or Ubuntu Linux
$ sudo apt-get update
$ sudo apt-get install build-essential manpages-dev
Then you can try rerunning:
sudo pip install numpy
Method 6
I simply had to open XCode and accept the agreement and let it install the tools. I then went back to PyCharm and installed numpy again with no issues.
Method 7
On Fedora 22 this was resolved by updating pip itself:
sudo pip install --upgrade pip
Method 8
For fedora users that are having a similar problem try installing these packeges:
(if not using python3 use python-devel and pip instead of 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
then try
sudo pip3 install numpy
Method 9
In my case this happened during a docker build. The problem was that the base image wasn’t fixed to a specific python version and numpy couldn’t compile with the new one.
FROM python:3-slim # BAD
After I changed it to the following it worked:
FROM python:3.8-slim # GOOD
Remember to fix your versions! 🙂
Method 10
In some cases after OS X upgrades XCode, XCode will require the user (with administrative privileges) to accept a new license. Until the license is accepted, clang and gcc will issue an error when attempting to compile and link code. Or at least python packages.
If you launch XCode and accept the license, the errors no longer appear.
At least, this was the case for me.
Method 11
This means it can’t find your C compiler.
Try installing the gcc compiler if linking other compiler fails.
Method 12
The above worked for me only after installing python3-dev.
Method 13
I solved this by using Conda instead of pip in my Dockerfile:
FROM continuumio/miniconda3:latest
Method 14
Old thread, by my problem was that I didn’t have Xcode installed. The following solved it.
xcode-select --install
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0