download precompiled gcc4.6 from http://hpc.sourceforge.net/ 1) Add extra stuff to configure include_dirs = [numpy.get_include(), os.path.join(numpy.get_include(), 'numpy'), '/Users/rmcgibbo/local/gcc-4-6.1/include/'], library_dirs = ['/Users/rmcgibbo/local/gcc-4-6.1/lib'], runtime_library_dirs = ['/Users/rmcgibbo/local/gcc-4-6.1/lib'] You have to manually give it the paths to the gcc-4.6.1 libs But I'm not sure if this actually was effective (see step 3) 2) "gcc" executable in current directory that strips -arch, calls real gcc4.6 Beacause for some reason, gcc4.6 (or non apple gcc in general?) wont except the arch flag, but python expects it to file: gcc =================== #!/usr/bin/env python import sys, os sys.argv.pop(0) while '-arch' in sys.argv: sys.argv.remove('-arch') sys.argv.remove('x86_64') cc = '/Users/rmcgibbo/local/gcc-4-6.1/bin/gcc' args = ' '.join(sys.argv) os.popen("%s %s" % (cc, args)) ================ Add current directory to the front of the path, so that this new executable called gcc gets called first. (chmod +x it as well) 3) $ export DYLD_LIBRARY_PATH=/Users/rmcgibbo/local/gcc-4-6.1/lib/:$DYLD_LIBRARY_PATH