[New-bugs-announce] [issue26033] distutils default compiler API is incomplete

Stefan Seefeld report at bugs.python.org
Wed Jan 6 19:32:48 EST 2016


New submission from Stefan Seefeld:

I'm trying to use the distutil compiler to preprocess some header (to be used with the cffi package).
The code is

    compiler = distutils.ccompiler.new_compiler()
    compiler.add_include_dir(join(sys.prefix, 'include'))
    compiler.preprocess(source)

This raises this exception (on Linux):

  File ".../distutils/unixccompiler.py", line 88, in preprocess
    pp_args = self.preprocessor + pp_opts
TypeError: unsupported operand type(s) for +: 'NoneType' and 'list'

caused by 'set.preprocessor' to be set to None (with the preceding comment:

    # The defaults here
    # are pretty generic; they will probably have to be set by an outsider
    # (eg. using information discovered by the sysconfig about building
    # Python extensions).

Seems that code never got fully implemented.
Further, the MSVC version of the compiler (msvccompiler.py) doesn't even implement a "preprocess()" method, so this falls back to the CCompiler.preprocess() default, which does nothing !

----------
components: Distutils
messages: 257663
nosy: dstufft, eric.araujo, stefan
priority: normal
severity: normal
status: open
title: distutils default compiler API is incomplete
type: behavior
versions: Python 2.7, Python 3.5

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


More information about the New-bugs-announce mailing list