Я использую Cython 0.19.2 (и Python 2.7.1), чтобы выставлять классы C++ для Python.Cython crash из примера документации
В первую очередь, я сделал тест с примером класса Rectangle в документации.
http://docs.cython.org/src/userguide/wrapping_CPlusPlus.html
У меня есть аварии, которую я не понимаю.
Я попытался упростить код max. но у меня все еще есть проблема.
Вот мой файл pyx, источники C++ - это всего лишь вырезка & вставки из документации python/cython.
# distutils: language = c++
# distutils: sources = Rectangle.cpp
cdef extern from "Rectangle.h" namespace "shapes":
cdef cppclass Rectangle:
pass
cdef class PyRectangle:
cdef Rectangle* thisptr
Я просто хочу объявить класс с помощью thisptr, который указывает экземпляр класса Rectangle C++.
Когда я пытаюсь скомпилировать программу с:
cython -a --cplus rect.pyx
У меня есть следующие аварии:
Error compiling Cython file:
------------------------------------------------------------
...
cdef extern from "Rectangle.h" namespace "shapes":
cdef cppclass Rectangle:
pass
cdef class PyRectangle:
cdef Rectangle* thisptr
^
------------------------------------------------------------
rect.pyx:9:7: Compiler crash in AnalyseDeclarationsTransform
File 'ModuleNode.py', line 101, in analyse_declarations: ModuleNode(rect.pyx:1:0,
full_module_name = 'rect')
File 'Nodes.py', line 382, in analyse_declarations: StatListNode(rect.pyx:4:0)
File 'Nodes.py', line 4251, in analyse_declarations: CClassDefNode(rect.pyx:8:5,
as_name = u'PyRectangle',
class_name = u'PyRectangle',
module_name = u'',
visibility = u'private')
File 'Nodes.py', line 382, in analyse_declarations: StatListNode(rect.pyx:9:7)
File 'Nodes.py', line 1208, in analyse_declarations: CVarDefNode(rect.pyx:9:7,
modifiers = [...]/0,
visibility = u'private')
Compiler crash traceback from this point on:
File "/home/xxx/local/python2.7.1/site-packages/Cython/Compiler/Nodes.py", line 1208, in analyse_declarations
self.entry.doc = embed_position(self.pos, self.doc)
AttributeError: 'CVarDefNode' object has no attribute 'doc'
я пытался компилировать с Pyrex, setup.py, ... все. Но у меня все еще такая же ошибка.
Есть ли что-то, что мне не хватает?
Thanks
Единственное, что я могу заметить, это то, что ваш питон довольно старый, и что ваш cython не является последним. – PlasmaHH
My Cython - 0.19.2, что является последним q [-_-] p – carmellose
, ваше сообщение заставляет его выглядеть как его 0.19, а не 0.19.2 ... пытались обновить сам python? просто догадка ... – PlasmaHH