Cython – Integração entre Python e C/C++ – Segunda Parte
Neste segundo artigo, iremos criar um projeto em C, em seguida desenvolver um projeto Hello World em Python, que iremos chamar no C e compilar.
GITHUB
https://github.com/marcelomaurin/cython
Primeiramente vamos criar nosso projeto em C.
Primeiramente criamos um arquivo Makefile
CC= gcc
SAMPLE=sample.pyx
LIBS= `pkg-config --cflags --libs python3`
TARGET=hello
SOURCE= \
hello.c \
sample.c
all: clean compile install
clean:
rm ./sample.c
rm ./sample.h
compile:
cython ./$(SAMPLE)
$(CC) $(SOURCE) $(LIBS) -o ./$(TARGET)
install:
cp ./$(TARGET) /usr/local/bin/
No exemplo acima, temos dois pontos chaves no nosso código.
A inclusão do sample.pyx que irá ser convertido em um sample.c e um sample.h, conforme script do compile.
Agora iremos mostrar o código do C, que chamará o python, nosso código: hello.c
#include <stdio.h>
#include "sample.h"
int main()
{
call_hello();
}
Neste código vemos uma chamada para a lib sample.h, que será criada pelo cython a partir do script.
A função Call_hello é declarada já no python, e a seguir vemos como ela é apresentada.
Fonte: hello.pyx
from sam import sam
cdef public void call_hello():
sam.hello()
Agora iremos escrever o sam.py, que será chamado:
def hello():
print("Hello World")
Por fim, compilamos o script:
make compile
E rodamos o mesmo
./hello
Documentação de Apoio
https://riptutorial.com/Download/cython.pdf