[Cython] Bug report: compiler traceback instead of error message

John Benediktsson mrjbq7 at gmail.com
Tue Jul 9 16:36:07 CEST 2013


Hi,

I had some trouble debugging a traceback that I got from Cython, which
ended up being a simple typo in a .pyx file.  Below is a reduced example of
this problem.

If you have a foo.pxd file (specifying a variable "bar"):

    $ cat foo.pxd
    cdef class Tree:
        cpdef build(self, int bar=*)

And a foo.pyx file (accidentally calling the variable "baz"):

    $ cat foo.pyx
    cdef class Tree:
        cpdef build(self, int baz=None):
            print baz

You get this nasty traceback when you try to cython it, which makes you
think there is a bug in Cython instead of a bug in your code:

$ cython foo.pyx
Traceback (most recent call last):
  File "/usr/local/bin/cython", line 9, in <module>
    load_entry_point('Cython==0.19.1', 'console_scripts', 'cython')()
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Main.py", line 618, in
setuptools_main
    return main(command_line = 1)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Main.py", line 635, in
main
    result = compile(sources, options)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Main.py", line 610, in
compile
    return compile_multiple(source, options)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Main.py", line 579, in
compile_multiple
    result = run_pipeline(source, options, context=context)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Main.py", line 425, in
run_pipeline
    err, enddata = Pipeline.run_pipeline(pipeline, source)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Pipeline.py", line 322,
in run_pipeline
    data = phase(data)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Pipeline.py", line 51,
in generate_pyx_code_stage
    module_node.process_implementation(options, result)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/ModuleNode.py", line
111, in process_implementation
    self.generate_c_code(env, options, result)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/ModuleNode.py", line
342, in generate_c_code
    self.body.generate_function_definitions(env, code)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Nodes.py", line 393, in
generate_function_definitions
    stat.generate_function_definitions(env, code)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Nodes.py", line 4267,
in generate_function_definitions
    self.body.generate_function_definitions(self.scope, code)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Nodes.py", line 393, in
generate_function_definitions
    stat.generate_function_definitions(env, code)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Nodes.py", line 1704,
in generate_function_definitions
    self.generate_argument_parsing_code(env, code)
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/Nodes.py", line 2297,
in generate_argument_parsing_code
    self.type.opt_arg_cname(declarator.name)))
  File "/Library/Python/2.7/site-packages/Cython
-0.19.1-py2.7-macosx-10.8-intel.egg/Cython/Compiler/PyrexTypes.py", line
2684, in opt_arg_cname
    return self.op_arg_struct.base_type.scope.lookup(arg_name).cname
AttributeError: 'NoneType' object has no attribute 'cname'

Thanks,
John.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/cython-devel/attachments/20130709/d2345e9e/attachment.html>


More information about the cython-devel mailing list