[New-bugs-announce] [issue18580] distutils compilers are unicode strings on OS X since Python 2.7.4

Alexey Borzenkov report at bugs.python.org
Sun Jul 28 16:18:25 CEST 2013


New submission from Alexey Borzenkov:

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.

----------
assignee: eric.araujo
components: Distutils
messages: 193826
nosy: Alexey.Borzenkov, eric.araujo, tarek
priority: normal
severity: normal
status: open
title: distutils compilers are unicode strings on OS X since Python 2.7.4
versions: Python 2.7

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue18580>
_______________________________________


More information about the New-bugs-announce mailing list