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
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
.
Tags und Links python c numpy python-c-api