pypa / setuptools

Official project repository for the Setuptools build system
https://pypi.org/project/setuptools/
MIT License
2.5k stars 1.19k forks source link

Unable to build extension in python 3.5 #455

Closed ghost closed 8 years ago

ghost commented 8 years ago

Originally reported by: kracekumar (Bitbucket: kracekumar, GitHub: kracekumar)


I am using OSX 10.10.5 (14F27) and Python 3.5. Python 3.5 was installed via brew. When greenlet is installed inside virtualenv using py3.5 header files are missing inside /path/to/venv/include/python3.5m. As a result uwsgi is unable to build with asyncio support

~  brew info python3
python3: stable 3.5.0 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python3/3.4.3 (4721 files, 82M)
Poured from bottle
/usr/local/Cellar/python3/3.4.3_2 (5948 files, 98M)
Built from source
/usr/local/Cellar/python3/3.5.0 (3573 files, 61M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/python3.rb
==> Dependencies
Build: xz , pkg-config 
Required: openssl 
Recommended: readline , sqlite , gdbm , xz 
Optional: homebrew/dupes/tcl-tk

Steps to reproduce

$/tmp  python3.5 -m virtualenv venv_bug
$/tmp  . venv_bug/bin/activate
(venv_bug)$/tmp  pip install greenlet
Collecting greenlet
  Using cached greenlet-0.4.9.tar.gz
Building wheels for collected packages: greenlet
  Running setup.py bdist_wheel for greenlet
  Complete output from command /private/tmp/venv_bug/bin/python3.5 -c "import setuptools;__file__='/private/var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-build-sxtdlufe/greenlet/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/tmpf6g8rwt_pip-wheel-:
  running bdist_wheel
  running build
  running build_ext
  building 'greenlet' extension
  creating build
  creating build/temp.macosx-10.10-x86_64-3.5
  clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/include/python3.5m -c greenlet.c -o build/temp.macosx-10.10-x86_64-3.5/greenlet.o
  creating build/lib.macosx-10.10-x86_64-3.5
  clang -bundle -undefined dynamic_lookup build/temp.macosx-10.10-x86_64-3.5/greenlet.o -o build/lib.macosx-10.10-x86_64-3.5/greenlet.cpython-35m-darwin.so
  installing to build/bdist.macosx-10.10-x86_64/wheel
  running install
  running install_lib
  creating build/bdist.macosx-10.10-x86_64
  creating build/bdist.macosx-10.10-x86_64/wheel
  copying build/lib.macosx-10.10-x86_64-3.5/greenlet.cpython-35m-darwin.so -> build/bdist.macosx-10.10-x86_64/wheel
  running install_headers
  creating build/bdist.macosx-10.10-x86_64/wheel/greenlet-0.4.9.data
  creating build/bdist.macosx-10.10-x86_64/wheel/greenlet-0.4.9.data/headers
  copying greenlet.h -> build/bdist.macosx-10.10-x86_64/wheel/greenlet-0.4.9.data/headers
  running install_egg_info
  running egg_info
  creating greenlet.egg-info
  writing top-level names to greenlet.egg-info/top_level.txt
  writing greenlet.egg-info/PKG-INFO
  writing dependency_links to greenlet.egg-info/dependency_links.txt
  writing manifest file 'greenlet.egg-info/SOURCES.txt'
  warning: manifest_maker: standard file '-c' not found

  reading manifest file 'greenlet.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  writing manifest file 'greenlet.egg-info/SOURCES.txt'
  Copying greenlet.egg-info to build/bdist.macosx-10.10-x86_64/wheel/greenlet-0.4.9-py3.5.egg-info
  running install_scripts
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/private/var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-build-sxtdlufe/greenlet/setup.py", line 101, in <module>
      **setuptools_args)
    File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 955, in run_commands
      self.run_command(cmd)
    File "/usr/local/Cellar/python3/3.5.0/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 974, in run_command
      cmd_obj.run()
    File "/private/tmp/venv_bug/lib/python3.5/site-packages/wheel/bdist_wheel.py", line 213, in run
      archive_basename = self.get_archive_basename()
    File "/private/tmp/venv_bug/lib/python3.5/site-packages/wheel/bdist_wheel.py", line 161, in get_archive_basename
      impl_tag, abi_tag, plat_tag = self.get_tag()
    File "/private/tmp/venv_bug/lib/python3.5/site-packages/wheel/bdist_wheel.py", line 155, in get_tag
      assert tag == supported_tags[0]
  AssertionError

  ----------------------------------------
  Failed building wheel for greenlet
Failed to build greenlet
Installing collected packages: greenlet
  Running setup.py install for greenlet
Successfully installed greenlet-0.4.9
(venv_bug)$  /tmp  CFLAGS="-I/tmp/venv_bug/include/python3.5m" UWSGI_PROFILE="asyncio" pip install uwsgi
Collecting uwsgi
  Using cached uwsgi-2.0.11.2.tar.gz
Building wheels for collected packages: uwsgi
  Running setup.py bdist_wheel for uwsgi
  Complete output from command /private/tmp/venv_bug/bin/python3.5 -c "import setuptools;__file__='/private/var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-build-bru7wwac/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/tmpwoq08qywpip-wheel-:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib
  copying uwsgidecorators.py -> build/lib
  installing to build/bdist.macosx-10.10-x86_64/wheel
  running install
  plugins/greenlet/greenlet.c:2:10: fatal error: 'greenlet/greenlet.h' file not found
  #include <greenlet/greenlet.h>
           ^
  1 error generated.

  ----------------------------------------
  Failed building wheel for uwsgi
Failed to build uwsgi
Installing collected packages: uwsgi
  Running setup.py install for uwsgi
    Complete output from command /private/tmp/venv_bug/bin/python3.5 -c "import setuptools, tokenize;__file__='/private/var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-build-bru7wwac/uwsgi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-69gibzr6-record/install-record.txt --single-version-externally-managed --compile --install-headers /private/tmp/venv_bug/bin/../include/site/python3.5/uwsgi:
    running install
    plugins/greenlet/greenlet.c:2:10: fatal error: 'greenlet/greenlet.h' file not found
    #include <greenlet/greenlet.h>
             ^
    1 error generated.

    ----------------------------------------
Command "/private/tmp/venv_bug/bin/python3.5 -c "import setuptools, tokenize;__file__='/private/var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-build-bru7wwac/uwsgi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-69gibzr6-record/install-record.txt --single-version-externally-managed --compile --install-headers /private/tmp/venv_bug/bin/../include/site/python3.5/uwsgi" failed with error code 1 in /private/var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-build-bru7wwac/uwsgi

Also setuptools is at latest version 18.2.

Installing uwsgi site wide succeeds. greenlet directory is present inside python3.5m.

(venv_bug)$  /tmp  ls -la /usr/local/include/python3.5m | grep greenlet
drwxr-xr-x   3 root   admin   102 Nov  1 20:40 greenlet

Links:


ghost commented 8 years ago

Original comment by kracekumar (Bitbucket: kracekumar, GitHub: kracekumar):


Already reported the bug in uwsgi https://github.com/unbit/uwsgi/issues/1100.

Also I typed correctly (CC=clang). Once again I tried and following is the output.

(setuptools-455) ➜  snippets  CC=clang CFLAGS="-I/Users/krace/code/snippets/setuptools-455/include/python3.5m" UWSGI_PROFILE="asyncio" python -m easy_install uwsgi
Searching for uwsgi
Reading https://pypi.python.org/simple/uwsgi/
Best match: uwsgi 2.0.11.2
Downloading https://pypi.python.org/packages/source/u/uWSGI/uwsgi-2.0.11.2.tar.gz#md5=1f02dcbee7f6f61de4b1fd68350cf16f
Processing uwsgi-2.0.11.2.tar.gz
Writing /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/easy_install-jgolnvyw/uwsgi-2.0.11.2/setup.cfg
Running uwsgi-2.0.11.2/setup.py -q bdist_egg --dist-dir /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/easy_install-jgolnvyw/uwsgi-2.0.11.2/egg-dist-tmp-sv2jlcvk
using profile: buildconf/asyncio.ini
detected include path: ['/usr/local/include', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/include', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include', '/usr/include', '/System/Library/Frameworks', '/Library/Frameworks']
Patching "bin_name" to properly install_scripts dir
detected CPU cores: 4
configured CFLAGS: -O2 -I. -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/Users/krace/code/snippets/setuptools-455/include/python3.5m -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-format -Wno-format-security -DUWSGI_HAS_IFADDRS -DUWSGI_ZLIB -mmacosx-version-min=10.5 -DUWSGI_LOCK_USE_OSX_SPINLOCK -DUWSGI_EVENT_USE_KQUEUE -DUWSGI_EVENT_TIMER_USE_KQUEUE -DUWSGI_EVENT_FILEMONITOR_USE_KQUEUE -I/usr/local/Cellar/pcre/8.37/include -DUWSGI_PCRE -DUWSGI_ROUTING -DUWSGI_UUID -DUWSGI_VERSION="\"2.0.11.2\"" -DUWSGI_VERSION_BASE="2" -DUWSGI_VERSION_MAJOR="0" -DUWSGI_VERSION_MINOR="11" -DUWSGI_VERSION_REVISION="2" -DUWSGI_VERSION_CUSTOM="\"\"" -DUWSGI_YAML -DUWSGI_SSL -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR="\".\"" -DUWSGI_DECLARE_EMBEDDED_PLUGINS="UDEP(python);UDEP(asyncio);UDEP(greenlet);UDEP(ping);UDEP(cache);UDEP(nagios);UDEP(rrdtool);UDEP(carbon);UDEP(rpc);UDEP(corerouter);UDEP(fastrouter);UDEP(http);UDEP(ugreen);UDEP(signal);UDEP(syslog);UDEP(rsyslog);UDEP(logsocket);UDEP(router_uwsgi);UDEP(router_redirect);UDEP(router_basicauth);UDEP(zergpool);UDEP(redislog);UDEP(mongodblog);UDEP(router_rewrite);UDEP(router_http);UDEP(logfile);UDEP(router_cache);UDEP(rawrouter);UDEP(router_static);UDEP(sslrouter);UDEP(spooler);UDEP(cheaper_busyness);UDEP(symcall);UDEP(transformation_tofile);UDEP(transformation_gzip);UDEP(transformation_chunked);UDEP(transformation_offload);UDEP(router_memcached);UDEP(router_redis);UDEP(router_hash);UDEP(router_expires);UDEP(router_metrics);UDEP(transformation_template);UDEP(stats_pusher_socket);" -DUWSGI_LOAD_EMBEDDED_PLUGINS="ULEP(python);ULEP(asyncio);ULEP(greenlet);ULEP(ping);ULEP(cache);ULEP(nagios);ULEP(rrdtool);ULEP(carbon);ULEP(rpc);ULEP(corerouter);ULEP(fastrouter);ULEP(http);ULEP(ugreen);ULEP(signal);ULEP(syslog);ULEP(rsyslog);ULEP(logsocket);ULEP(router_uwsgi);ULEP(router_redirect);ULEP(router_basicauth);ULEP(zergpool);ULEP(redislog);ULEP(mongodblog);ULEP(router_rewrite);ULEP(router_http);ULEP(logfile);ULEP(router_cache);ULEP(rawrouter);ULEP(router_static);ULEP(sslrouter);ULEP(spooler);ULEP(cheaper_busyness);ULEP(symcall);ULEP(transformation_tofile);ULEP(transformation_gzip);ULEP(transformation_chunked);ULEP(transformation_offload);ULEP(router_memcached);ULEP(router_redis);ULEP(router_hash);ULEP(router_expires);ULEP(router_metrics);ULEP(transformation_template);ULEP(stats_pusher_socket);"
*** uWSGI compiling server core ***
[thread 1][clang] core/utils.o
[thread 2][clang] core/protocol.o
[thread 3][clang] core/socket.o
[thread 0][clang] core/logging.o
[thread 1][clang] core/master.o
[thread 2][clang] core/master_utils.o
[thread 3][clang] core/emperor.o
[thread 0][clang] core/notify.o
[thread 1][clang] core/mule.o
[thread 2][clang] core/subscription.o
[thread 3][clang] core/stats.o
[thread 0][clang] core/sendfile.o
[thread 1][clang] core/async.o
[thread 2][clang] core/master_checks.o
[thread 3][clang] core/fifo.o
[thread 0][clang] core/offload.o
[thread 1][clang] core/io.o
[thread 2][clang] core/static.o
[thread 3][clang] core/websockets.o
[thread 0][clang] core/spooler.o
[thread 1][clang] core/snmp.o
[thread 2][clang] core/exceptions.o
[thread 3][clang] core/config.o
[thread 0][clang] core/setup_utils.o
[thread 1][clang] core/clock.o
[thread 2][clang] core/init.o
[thread 3][clang] core/buffer.o
[thread 0][clang] core/reader.o
[thread 1][clang] core/writer.o
[thread 2][clang] core/alarm.o
[thread 3][clang] core/cron.o
[thread 0][clang] core/hooks.o
[thread 1][clang] core/plugins.o
[thread 2][clang] core/lock.o
[thread 3][clang] core/cache.o
[thread 0][clang] core/daemons.o
[thread 1][clang] core/errors.o
[thread 2][clang] core/hash.o
[thread 3][clang] core/master_events.o
[thread 0][clang] core/chunked.o
[thread 1][clang] core/queue.o
[thread 2][clang] core/event.o
[thread 3][clang] core/signal.o
[thread 0][clang] core/strings.o
[thread 1][clang] core/progress.o
[thread 2][clang] core/timebomb.o
[thread 3][clang] core/ini.o
[thread 0][clang] core/fsmon.o
[thread 1][clang] core/mount.o
[thread 2][clang] core/metrics.o
[thread 3][clang] core/plugins_builder.o
[thread 0][clang] core/sharedarea.o
[thread 1][clang] core/rpc.o
[thread 2][clang] core/gateway.o
[thread 3][clang] core/loop.o
[thread 0][clang] core/cookie.o
[thread 1][clang] core/querystring.o
[thread 2][clang] core/rb_timers.o
[thread 3][clang] core/transformations.o
[thread 0][clang] core/uwsgi.o
[thread 1][clang] proto/base.o
[thread 2][clang] proto/uwsgi.o
[thread 3][clang] proto/http.o
[thread 0][clang] proto/fastcgi.o
[thread 1][clang] proto/scgi.o
[thread 2][clang] proto/puwsgi.o
[thread 3][clang] core/zlib.o
[thread 0][clang] core/regexp.o
[thread 1][clang] core/routing.o
[thread 2][clang] core/yaml.o
[thread 3][clang] core/ssl.o
[thread 0][clang] core/legion.o
[thread 1][clang] core/xmlconf.o
[thread 2][clang] core/dot_h.o
[thread 3][clang] core/config_py.o
*** uWSGI compiling embedded plugins ***
[thread 0][clang] plugins/python/python_plugin.o
[thread 1][clang] plugins/python/pyutils.o
[thread 2][clang] plugins/python/pyloader.o
[thread 3][clang] plugins/python/wsgi_handlers.o
[thread 0][clang] plugins/python/wsgi_headers.o
[thread 1][clang] plugins/python/wsgi_subhandler.o
[thread 2][clang] plugins/python/web3_subhandler.o
[thread 3][clang] plugins/python/pump_subhandler.o
[thread 0][clang] plugins/python/gil.o
[thread 1][clang] plugins/python/uwsgi_pymodule.o
[thread 2][clang] plugins/python/profiler.o
[thread 3][clang] plugins/python/symimporter.o
[thread 0][clang] plugins/python/tracebacker.o
[thread 1][clang] plugins/python/raw.o
[thread 2][clang] plugins/asyncio/asyncio.o
[thread 3][clang] plugins/greenlet/greenlet.o
[thread 0][clang] plugins/ping/ping_plugin.o
[thread 1][clang] plugins/cache/cache.o
[thread 2][clang] plugins/nagios/nagios.o
plugins/greenlet/greenlet.c:2:10: fatal error: 'greenlet/greenlet.h' file not found
#include <greenlet/greenlet.h>
         ^
1 error generated.

Thanks.

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


@kracekumar I'm slightly surprised that it's not working for you with easy_install. Are you sure you typed it correctly? You mistyped it in your message above. It should be CC=clang not cc=CLANG.

I don't believe the issue lies with distutils; it may lie with Python itself. But before you file a ticket with Python, I recommend you either file a ticket with uwsgi, which I see may not be possible, because the issue seems to be unique to their implementation (and around for some time). If you can't file a ticket with uwsgi, then I recommend you download the source and debug building it yourself or reach out on their support forums for help there.

Best of luck -Jason

ghost commented 8 years ago

Original comment by kracekumar (Bitbucket: kracekumar, GitHub: kracekumar):


Should I report the bug to distutils https://bitbucket.org/carljm/python-distutils ?

ghost commented 8 years ago

Original comment by kracekumar (Bitbucket: kracekumar, GitHub: kracekumar):


Thanks Jason. Building extension via easy_install results in same error and setting cc=CLANG also doesn't help in pip.

➜  snippets  . setuptools-455/bin/activate
(setuptools-455) ➜  snippets  pip install wheel
Collecting wheel
  Using cached wheel-0.26.0-py2.py3-none-any.whl
Installing collected packages: wheel
Successfully installed wheel-0.26.0
(setuptools-455) ➜  snippets  pip install greenlet
Collecting greenlet
Installing collected packages: greenlet
Successfully installed greenlet-0.4.9
(setuptools-455) ➜  snippets  CC=clang CFLAGS="-I/Users/krace/code/snippets/setuptools-455/include/python3.5m" UWSGI_PROFILE="asyncio" pip install uwsgi
Collecting uwsgi
  Using cached uwsgi-2.0.11.2.tar.gz
Building wheels for collected packages: uwsgi
  Running setup.py bdist_wheel for uwsgi
  Complete output from command /Users/krace/code/snippets/setuptools-455/bin/python3.5 -c "import setuptools;__file__='/private/var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-build-7f8p_pc2/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" bdist_wheel -d /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/tmp5567xqd7pip-wheel-:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib
  copying uwsgidecorators.py -> build/lib
  installing to build/bdist.macosx-10.10-x86_64/wheel
  running install
  plugins/greenlet/greenlet.c:2:10: fatal error: 'greenlet/greenlet.h' file not found
  #include <greenlet/greenlet.h>
           ^
  1 error generated.

  ----------------------------------------
  Failed building wheel for uwsgi
Failed to build uwsgi
Installing collected packages: uwsgi
  Running setup.py install for uwsgi
    Complete output from command /Users/krace/code/snippets/setuptools-455/bin/python3.5 -c "import setuptools, tokenize;__file__='/private/var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-build-7f8p_pc2/uwsgi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-hhp__lot-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/krace/code/snippets/setuptools-455/include/site/python3.5/uwsgi:
    running install
    plugins/greenlet/greenlet.c:2:10: fatal error: 'greenlet/greenlet.h' file not found
    #include <greenlet/greenlet.h>
             ^
    1 error generated.

    ----------------------------------------
Command "/Users/krace/code/snippets/setuptools-455/bin/python3.5 -c "import setuptools, tokenize;__file__='/private/var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-build-7f8p_pc2/uwsgi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-hhp__lot-record/install-record.txt --single-version-externally-managed --compile --install-headers /Users/krace/code/snippets/setuptools-455/include/site/python3.5/uwsgi" failed with error code 1 in /private/var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/pip-build-7f8p_pc2/uwsgi
(setuptools-455) ➜  snippets  CC=clang CFLAGS="-I/Users/krace/code/snippets/setuptools-455/include/python3.5m" UWSGI_PROFILE="asyncio" python -m easy_intsall uwsgi
/Users/krace/code/snippets/setuptools-455/bin/python: No module named easy_intsall
(setuptools-455) ➜  snippets  CC=clang CFLAGS="-I/Users/krace/code/snippets/setuptools-455/include/python3.5m" UWSGI_PROFILE="asyncio" python -m easy_install uwsgi
Searching for uwsgi
Reading https://pypi.python.org/simple/uwsgi/
Best match: uwsgi 2.0.11.2
Downloading https://pypi.python.org/packages/source/u/uWSGI/uwsgi-2.0.11.2.tar.gz#md5=1f02dcbee7f6f61de4b1fd68350cf16f
Processing uwsgi-2.0.11.2.tar.gz
Writing /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/easy_install-m0g0tk96/uwsgi-2.0.11.2/setup.cfg
Running uwsgi-2.0.11.2/setup.py -q bdist_egg --dist-dir /var/folders/xk/8lhz2_j91_3758cc65stj5z40000gn/T/easy_install-m0g0tk96/uwsgi-2.0.11.2/egg-dist-tmp-b96eohdu
using profile: buildconf/asyncio.ini
detected include path: ['/usr/local/include', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/include', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include', '/usr/include', '/System/Library/Frameworks', '/Library/Frameworks']
Patching "bin_name" to properly install_scripts dir
detected CPU cores: 4
configured CFLAGS: -O2 -I. -Wall -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/Users/krace/code/snippets/setuptools-455/include/python3.5m -fno-strict-aliasing -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-format -Wno-format-security -DUWSGI_HAS_IFADDRS -DUWSGI_ZLIB -mmacosx-version-min=10.5 -DUWSGI_LOCK_USE_OSX_SPINLOCK -DUWSGI_EVENT_USE_KQUEUE -DUWSGI_EVENT_TIMER_USE_KQUEUE -DUWSGI_EVENT_FILEMONITOR_USE_KQUEUE -I/usr/local/Cellar/pcre/8.37/include -DUWSGI_PCRE -DUWSGI_ROUTING -DUWSGI_UUID -DUWSGI_VERSION="\"2.0.11.2\"" -DUWSGI_VERSION_BASE="2" -DUWSGI_VERSION_MAJOR="0" -DUWSGI_VERSION_MINOR="11" -DUWSGI_VERSION_REVISION="2" -DUWSGI_VERSION_CUSTOM="\"\"" -DUWSGI_YAML -DUWSGI_SSL -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 -DUWSGI_XML -DUWSGI_XML_LIBXML2 -DUWSGI_PLUGIN_DIR="\".\"" -DUWSGI_DECLARE_EMBEDDED_PLUGINS="UDEP(python);UDEP(asyncio);UDEP(greenlet);UDEP(ping);UDEP(cache);UDEP(nagios);UDEP(rrdtool);UDEP(carbon);UDEP(rpc);UDEP(corerouter);UDEP(fastrouter);UDEP(http);UDEP(ugreen);UDEP(signal);UDEP(syslog);UDEP(rsyslog);UDEP(logsocket);UDEP(router_uwsgi);UDEP(router_redirect);UDEP(router_basicauth);UDEP(zergpool);UDEP(redislog);UDEP(mongodblog);UDEP(router_rewrite);UDEP(router_http);UDEP(logfile);UDEP(router_cache);UDEP(rawrouter);UDEP(router_static);UDEP(sslrouter);UDEP(spooler);UDEP(cheaper_busyness);UDEP(symcall);UDEP(transformation_tofile);UDEP(transformation_gzip);UDEP(transformation_chunked);UDEP(transformation_offload);UDEP(router_memcached);UDEP(router_redis);UDEP(router_hash);UDEP(router_expires);UDEP(router_metrics);UDEP(transformation_template);UDEP(stats_pusher_socket);" -DUWSGI_LOAD_EMBEDDED_PLUGINS="ULEP(python);ULEP(asyncio);ULEP(greenlet);ULEP(ping);ULEP(cache);ULEP(nagios);ULEP(rrdtool);ULEP(carbon);ULEP(rpc);ULEP(corerouter);ULEP(fastrouter);ULEP(http);ULEP(ugreen);ULEP(signal);ULEP(syslog);ULEP(rsyslog);ULEP(logsocket);ULEP(router_uwsgi);ULEP(router_redirect);ULEP(router_basicauth);ULEP(zergpool);ULEP(redislog);ULEP(mongodblog);ULEP(router_rewrite);ULEP(router_http);ULEP(logfile);ULEP(router_cache);ULEP(rawrouter);ULEP(router_static);ULEP(sslrouter);ULEP(spooler);ULEP(cheaper_busyness);ULEP(symcall);ULEP(transformation_tofile);ULEP(transformation_gzip);ULEP(transformation_chunked);ULEP(transformation_offload);ULEP(router_memcached);ULEP(router_redis);ULEP(router_hash);ULEP(router_expires);ULEP(router_metrics);ULEP(transformation_template);ULEP(stats_pusher_socket);"
*** uWSGI compiling server core ***
[thread 1][clang] core/utils.o
[thread 3][clang] core/protocol.o
[thread 0][clang] core/socket.o
[thread 2][clang] core/logging.o
[thread 1][clang] core/master.o
[thread 3][clang] core/master_utils.o
[thread 0][clang] core/emperor.o
[thread 2][clang] core/notify.o
[thread 1][clang] core/mule.o
[thread 3][clang] core/subscription.o
[thread 0][clang] core/stats.o
[thread 2][clang] core/sendfile.o
[thread 1][clang] core/async.o
[thread 3][clang] core/master_checks.o
[thread 0][clang] core/fifo.o
[thread 2][clang] core/offload.o
[thread 1][clang] core/io.o
[thread 3][clang] core/static.o
[thread 0][clang] core/websockets.o
[thread 2][clang] core/spooler.o
[thread 1][clang] core/snmp.o
[thread 3][clang] core/exceptions.o
[thread 0][clang] core/config.o
[thread 2][clang] core/setup_utils.o
[thread 1][clang] core/clock.o
[thread 3][clang] core/init.o
[thread 0][clang] core/buffer.o
[thread 2][clang] core/reader.o
[thread 1][clang] core/writer.o
[thread 3][clang] core/alarm.o
[thread 0][clang] core/cron.o
[thread 2][clang] core/hooks.o
[thread 1][clang] core/plugins.o
[thread 3][clang] core/lock.o
[thread 0][clang] core/cache.o
[thread 2][clang] core/daemons.o
[thread 1][clang] core/errors.o
[thread 3][clang] core/hash.o
[thread 0][clang] core/master_events.o
[thread 2][clang] core/chunked.o
[thread 1][clang] core/queue.o
[thread 3][clang] core/event.o
[thread 0][clang] core/signal.o
[thread 2][clang] core/strings.o
[thread 1][clang] core/progress.o
[thread 3][clang] core/timebomb.o
[thread 0][clang] core/ini.o
[thread 2][clang] core/fsmon.o
[thread 1][clang] core/mount.o
[thread 3][clang] core/metrics.o
[thread 0][clang] core/plugins_builder.o
[thread 2][clang] core/sharedarea.o
[thread 1][clang] core/rpc.o
[thread 3][clang] core/gateway.o
[thread 0][clang] core/loop.o
[thread 2][clang] core/cookie.o
[thread 1][clang] core/querystring.o
[thread 3][clang] core/rb_timers.o
[thread 0][clang] core/transformations.o
[thread 2][clang] core/uwsgi.o
[thread 1][clang] proto/base.o
[thread 3][clang] proto/uwsgi.o
[thread 0][clang] proto/http.o
[thread 2][clang] proto/fastcgi.o
[thread 1][clang] proto/scgi.o
[thread 3][clang] proto/puwsgi.o
[thread 0][clang] core/zlib.o
[thread 2][clang] core/regexp.o
[thread 1][clang] core/routing.o
[thread 3][clang] core/yaml.o
[thread 0][clang] core/ssl.o
[thread 2][clang] core/legion.o
[thread 1][clang] core/xmlconf.o
[thread 3][clang] core/dot_h.o
[thread 0][clang] core/config_py.o
*** uWSGI compiling embedded plugins ***
[thread 2][clang] plugins/python/python_plugin.o
[thread 1][clang] plugins/python/pyutils.o
[thread 3][clang] plugins/python/pyloader.o
[thread 0][clang] plugins/python/wsgi_handlers.o
[thread 2][clang] plugins/python/wsgi_headers.o
[thread 1][clang] plugins/python/wsgi_subhandler.o
[thread 3][clang] plugins/python/web3_subhandler.o
[thread 0][clang] plugins/python/pump_subhandler.o
[thread 2][clang] plugins/python/gil.o
[thread 1][clang] plugins/python/uwsgi_pymodule.o
[thread 3][clang] plugins/python/profiler.o
[thread 0][clang] plugins/python/symimporter.o
[thread 2][clang] plugins/python/tracebacker.o
[thread 1][clang] plugins/python/raw.o
[thread 3][clang] plugins/asyncio/asyncio.o
[thread 0][clang] plugins/greenlet/greenlet.o
[thread 2][clang] plugins/ping/ping_plugin.o
[thread 1][clang] plugins/cache/cache.o
[thread 3][clang] plugins/nagios/nagios.o
plugins/greenlet/greenlet.c:2:10: fatal error: 'greenlet/greenlet.h' file not found
#include <greenlet/greenlet.h>
         ^
1 error generated.
ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Using only venv and easy_install, I get the following:

$ python -m venv ~/.envs/setuptools-455
$ ~/.envs/setuptools-455/bin/easy_install uwsgi
Searching for uwsgi
Reading https://pypi.python.org/simple/uwsgi/
Best match: uwsgi 2.0.11.2
Downloading https://pypi.python.org/packages/source/u/uWSGI/uwsgi-2.0.11.2.tar.gz#md5=1f02dcbee7f6f61de4b1fd68350cf16f
Processing uwsgi-2.0.11.2.tar.gz
Writing /var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-mdse64ks/uwsgi-2.0.11.2/setup.cfg
Running uwsgi-2.0.11.2/setup.py -q bdist_egg --dist-dir /var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-mdse64ks/uwsgi-2.0.11.2/egg-dist-tmp-8mf2b5ai
using profile: buildconf/default.ini
detected include path: ['/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/include', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks']
Traceback (most recent call last):
  File "/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-mdse64ks/uwsgi-2.0.11.2/uwsgiconfig.py", line 692, in __init__
AttributeError: 'NoneType' object has no attribute 'split'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 152, in save_modules
    yield saved
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 193, in setup_context
    yield
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 237, in run_setup
    DirectorySandbox(setup_dir).run(runner)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 267, in run
    return func()
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 236, in runner
    _execfile(setup_script, ns)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 46, in _execfile
    exec(code, globals, locals)
  File "/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-mdse64ks/uwsgi-2.0.11.2/setup.py", line 109, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/bdist_egg.py", line 160, in run
    cmd = self.call_command('install_lib', warn_dir=0)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/bdist_egg.py", line 146, in call_command
    self.run_command(cmdname)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-mdse64ks/uwsgi-2.0.11.2/setup.py", line 83, in run
  File "/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-mdse64ks/uwsgi-2.0.11.2/uwsgiconfig.py", line 700, in __init__
Exception: you need a C compiler to build uWSGI

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/jaraco/.envs/setuptools-455/bin/easy_install", line 11, in <module>
    sys.exit(main())
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 2245, in main
    distclass=DistributionWithoutHelpCommands, **kw
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 380, in run
    self.easy_install(spec, not self.no_deps)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 629, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 659, in install_item
    dists = self.install_eggs(spec, download, tmpdir)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 842, in install_eggs
    return self.build_and_install(setup_script, setup_base)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 1070, in build_and_install
    self.run_setup(setup_script, setup_base, args)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 1056, in run_setup
    run_setup(setup_script, args)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 240, in run_setup
    raise
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 193, in setup_context
    yield
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 164, in save_modules
    saved_exc.resume()
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 139, in resume
    compat.reraise(type, exc, self._tb)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/compat.py", line 65, in reraise
    raise value.with_traceback(tb)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 152, in save_modules
    yield saved
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 193, in setup_context
    yield
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 237, in run_setup
    DirectorySandbox(setup_dir).run(runner)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 267, in run
    return func()
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 236, in runner
    _execfile(setup_script, ns)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/sandbox.py", line 46, in _execfile
    exec(code, globals, locals)
  File "/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-mdse64ks/uwsgi-2.0.11.2/setup.py", line 109, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/bdist_egg.py", line 160, in run
    cmd = self.call_command('install_lib', warn_dir=0)
  File "/Users/jaraco/.envs/setuptools-455/lib/python3.5/site-packages/setuptools/command/bdist_egg.py", line 146, in call_command
    self.run_command(cmdname)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-mdse64ks/uwsgi-2.0.11.2/setup.py", line 83, in run
  File "/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-mdse64ks/uwsgi-2.0.11.2/uwsgiconfig.py", line 700, in __init__
Exception: you need a C compiler to build uWSGI

Looking at the AttributeError, it seems that gcc_version is None at 692:

$ curl https://pypi.python.org/packages/source/u/uWSGI/uwsgi-2.0.11.2.tar.gz#md5=1f02dcbee7f6f61de4b1fd68350cf16f -o - | tar xz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  763k  100  763k    0     0   940k      0 --:--:-- --:--:-- --:--:--  940k
$ nl -b a uwsgi-2.0.11.2/uwsgiconfig.py | sed -n '692p'
   692              gcc_version_components = gcc_version.split('.')

And that value is set here:

$ nl -b a uwsgi-2.0.11.2/uwsgiconfig.py | sed -n '651,657p'
   651          gcc_version = spcall("%s -dumpversion" % GCC)
   652          if not gcc_version and GCC.startswith('gcc'):
   653              if uwsgi_os == 'Darwin':
   654                  GCC = 'llvm-' + GCC
   655              else:
   656                  GCC = 'gcc'
   657              gcc_version = spcall("%s -dumpversion" % GCC)

Tracing into that code, I find

$ python -m pdb setup.py build_ext
> /Users/jaraco/uwsgi-2.0.11.2/setup.py(1)<module>()
-> import os
(Pdb) b uwsgiconfig.py:651
Breakpoint 1 at /Users/jaraco/uwsgi-2.0.11.2/uwsgiconfig.py:651
(Pdb) c
running build_ext
using profile: buildconf/default.ini
> /Users/jaraco/uwsgi-2.0.11.2/uwsgiconfig.py(651)__init__()
-> gcc_version = spcall("%s -dumpversion" % GCC)
(Pdb) GCC
'gcc-4.2'

And indeed, that command does not exist on my system:

$ gcc-4.2
-bash: gcc-4.2: command not found

And that GCC variable seems to be set here:

$ nl -b a uwsgiconfig.py | sed -n '23,30p'
    23  from distutils import sysconfig
    24  
    25  try:
    26      import ConfigParser
    27  except:
    28      import configparser as ConfigParser
    29  
    30  GCC = os.environ.get('CC', sysconfig.get_config_var('CC'))
$ python -c "import sysconfig; print(sysconfig.get_config_var('CC'))"
gcc-4.2

So, although sysconfig.get_config_var('CC') returns gcc-4.2, there's no gcc-4.2 on the system. However, using the environment variable override indicated by line 30 seems to work:

$ CC=gcc python -m easy_install uwsgi
Searching for uwsgi
Reading https://pypi.python.org/simple/uwsgi/
Best match: uwsgi 2.0.11.2
Downloading https://pypi.python.org/packages/source/u/uWSGI/uwsgi-2.0.11.2.tar.gz#md5=1f02dcbee7f6f61de4b1fd68350cf16f
Processing uwsgi-2.0.11.2.tar.gz
Writing /var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-_m1gvepr/uwsgi-2.0.11.2/setup.cfg
Running uwsgi-2.0.11.2/setup.py -q bdist_egg --dist-dir /var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/easy_install-_m1gvepr/uwsgi-2.0.11.2/egg-dist-tmp-zzn8lgm2
using profile: buildconf/default.ini
detected include path: ['/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/include', '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks']
Patching "bin_name" to properly install_scripts dir
detected CPU cores: 4
...
total build time: 16 seconds
*** uWSGI is ready, launch it with /Library/Frameworks/Python.framework/Versions/3.5/bin/uwsgi ***
zip_safe flag not set; analyzing archive contents...
Copying uWSGI-2.0.11.2-py3.5.egg to /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages
Adding uWSGI 2.0.11.2 to easy-install.pth file

Installed /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/uWSGI-2.0.11.2-py3.5.egg
Processing dependencies for uwsgi
Finished processing dependencies for uwsgi
$ which uwsgi
/Library/Frameworks/Python.framework/Versions/3.5/bin/uwsgi

Seems you're not the only one who's encountered this issue. The reply at the bottom indicates that this issue stems from a long-deprecated expectation of "gcc-4.2". I suspect that this value stems from the public releases of Python being built on older OS X clients for compatibility.

I'll bet setting CC=clang when installing uwsgi is the best workaround.

ghost commented 8 years ago

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


There's no defect in setuptools here. There may be a defect in Python or distutils, but building normal C extensions on setuptools works just fine.

ghost commented 8 years ago

Original comment by kracekumar (Bitbucket: kracekumar, GitHub: kracekumar):


Updating the wheel version fixes the assertion whereas building uwsgi still fails.