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 <rep...@bugs.python.org>
<http://bugs.python.org/issue18580>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to