Cython – Integração entre Python e C/C++ – Segunda Parte

16 de junho de 2022 Off Por Marcelo Martins

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