2016-10-31 2 views
1

Я пытаюсь обернуть довольно большой проект с Cython, и я немного запутался, как убедиться, что я не получаю перепутались иерархия ...Cython: ВЫЗОВ модули из других модулей

Например , позволяет сказать, что у меня есть A.pxi файл, расположенный в

/Project/Globals/A.pxi

и у меня есть еще один файл B.pxi, который зависит от а, и что находится на

Project/Утилиты/B.pxi

Так я думал, что все, что я должен был бы сделать, это включить A.pxi в B.pxi, который построил хорошо.

Теперь в моем главном файле Tester.py У меня есть

#import Project.Globals 
#import Project.Utilies 

someVar=Project.Globals.A.SomeFunction() 
B.AnotherFunction(someVar) 

Питон отладчик говорит мне, «в другой функции, полученные Project.Globals.A, как ожидается Project.Utilities.A

Я знаю, почему ошибка, потому что я включил файл pxi, а cython написал A как часть этого. Как это исправить?

ответ

0

После того, как я постучал головой по столу в течение нескольких часов, я НАКОНЕЦ понял Я подробно прочитал руководство по поводу правильного способа сборки модуля.

коды
  1. C/C++ (cppclass) принадлежат в .pxd файле
  2. Python классы-оболочки принадлежат в .pyx файл, который содержит

cimport myCFile

который является соответствующим файлом pxd

  1. Файл __init__.py (может быть пустым) принадлежит в КАЖДОЙ директории
  2. поместите «.» В каталог include path и сделайте все относительно этого.

Работает прекрасно!

Смежные вопросы