Метод без возвращаемого значения в модуле расширения python c

Я пытаюсь создать скрипт в python, который отправляет данные через параллельный порт. Я создаю свой собственный модуль на языке C.

Проблема в том, что когда я пытаюсь выполнить свой модуль, python падает. Ни ошибок, ни данных, ничего. Он просто закрывается.

Вот мой модуль:

#include <Python.h>
#include <sys/io.h>
#define BaseAddr 0x378

/*----------------------------------------------------------------------------------
Este es un módulo destinado a controlar el puerto paralelo.
Probablemente tenga que ser ejecutado como administrador.

Created by markmb
------------------------------------------------------------------------------------*/

static PyObject *
paralelo(PyObject *self, PyObject *args){
    int pin;
    ioperm(BaseAddr,3,1);
    if (!PyArg_ParseTuple(args, "i", &pin))
        return NULL;
    outb(pin,BaseAddr);
    ioperm(BaseAddr,3,0);
    return 1
}
PyMethodDef methods[] = {
    {"paralelo", paralelo, METH_VARARGS, "Sends data through a parallel port"},
    {NULL, NULL, 0, NULL}
};
PyMODINIT_FUNC
initparalelo(void){
    (void) Py_InitModule("paralelo", methods);
}

(Он работает без всяких заморочек с python). Я компилирую его через distutils и затем, в терминале (использую xubuntu), я ставлю:

import paralelo
while True:
    paralelo.paralelo(255)

И здесь, он выходит из python, он ставит "markmb@..."

Спасибо заранее!

9
задан Amro 19 August 2012 в 22:16
поделиться