Author Alexey.Borzenkov
Recipients Alexey.Borzenkov, eric.araujo, tarek
Date 2013-07-28.14:18:25
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1375021105.23.0.849162523275.issue18580@psf.upfronthosting.co.za>
In-reply-to
Content
A user reported getting a TypeError when building greenlet on OS X with Python 2.7.4 built with homebrew. The TypeError happens because we subclass build_ext so before building extensions we can change compiler's compiler_so. The problem is that instead of a list it's a unicode string.

I couldn't reproduce the problem myself, but I traced it to the following:

In Lib/distutils/ccompiler.py, method CCompiler.set_executable, type check is only for str. So if set_executable is called with a unicode string is would not be turned into a list.

In Lib/_osx_support.py, function _read_output, the output is always decoded as utf-8 (why?). This function is used in _find_build_tool, which in turn is used in _find_appropriate_compiler, but only if it cannot find the compiler on the PATH (not sure when this could happen, when the user doesn't have Command Line Support installed?). Because of this compiler will be configured as a unicode string and this would probably mean no extensions can be built.

I this either _osx_support should be fixed to not decode output as utf-8, or set_executable should be fixed to test for basestring instead of str.
History
Date User Action Args
2013-07-28 14:18:25Alexey.Borzenkovsetrecipients: + Alexey.Borzenkov, tarek, eric.araujo
2013-07-28 14:18:25Alexey.Borzenkovsetmessageid: <1375021105.23.0.849162523275.issue18580@psf.upfronthosting.co.za>
2013-07-28 14:18:25Alexey.Borzenkovlinkissue18580 messages
2013-07-28 14:18:25Alexey.Borzenkovcreate