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

Fóruns e Artigos coligados