Es sieht so aus, als würde man eine __init__.pyx
kompilieren, die eine cimport
Anweisung enthält, ist fehlerhaft.
Das ist meine Ordnerstruktur:
%Vor% Die __init__.pyx
:
Kompilieren der __init__.pyx
mit Cython gibt mir, dass utils.pxd
nicht gefunden werden konnte. Umbenennung von __init__.pyx
in einen anderen Namen, zB foo.pyx
für Beispiel
und dann kompilieren foo.pyx
funktioniert gut.
Mache ich etwas falsch?
Wenn ein Verzeichnis eine __init__.py
oder __init__.pyx
Datei enthält, wird davon ausgegangen, dass es ein Paketverzeichnis ist. In Ihrem Beispiel wird angenommen, dass das Modul utils zum Paket DrawAPI
gehört und sein FQMN ist DrawAPI.utils
Wenn DrawAPI
jedoch das aktuelle Verzeichnis ist, in dem Sie den Compiler ausführen, und Sie DrawAPI nicht zum Include-Pfad hinzugefügt haben, wird utils.pxd
nicht gefunden (wie Sie herausgefunden haben ...)
Wenn Sie wollen, dass utils ein Modul der obersten Ebene ist, dann müssen Sie es woanders hin verschieben, wo es keine __init__.pyx
-Datei gibt.
Wenn Sie beabsichtigen, dass es sich in einem Paket befindet, wechseln Sie in das Verzeichnis, das DrawAPI
enthält, und kompilieren Sie von dort.