Das Beispiel von Numpy C-Api zeigt einen SegFault

8

Ich versuche zu verstehen, wie die Python C-API funktioniert, und ich möchte numpige Arrays zwischen Python und einer C-Erweiterung austauschen.

Also habe ich dieses Tutorial angefangen: Ссылка

Versucht, das erste Beispiel dort zu machen, ein C-Modul, das die Spur eines 2d-numpy-Arrays berechnet, war sehr sauber für mich, da ich Elementaroperationen auch in 2d-Arrays durchführen möchte.

%Vor%

Der Name des Moduls ist ein Trace und wird mit der Datei setup.py kompiliert:

%Vor%

Die Datei ist kompiliert, trace.so wird in IPython importiert, aber wenn ich versuche, die Methode trace () zu verwenden, erhalte ich einen Segmentierungsfehler, ich weiß nicht warum.

Ich betreibe dies mit Fedora 15, Python 2.7.1, gcc 4.3.0, Numpy 1.5.1

    
mehmet.ali.anil 11.10.2011, 18:30
quelle

1 Antwort

15

Ihre Init-Funktion für das Modul muss

aufrufen %Vor%

nach

%Vor%

Es erwähnt dies im Tutorial oben, aber es ist leicht zu übersehen. Ohne dies segmentiert es auf PyArray_ContiguousFromObject .

    
Justin Peel 11.10.2011, 20:37
quelle

Tags und Links