{"id":21086,"date":"2022-06-16T11:56:33","date_gmt":"2022-06-16T14:56:33","guid":{"rendered":"http:\/\/maurinsoft.com.br\/?p=21086"},"modified":"2022-06-16T11:56:33","modified_gmt":"2022-06-16T14:56:33","slug":"cython-integracao-entre-python-e-c-c-segunda-parte","status":"publish","type":"post","link":"https:\/\/maurinsoft.com.br\/wp\/en\/cython-integracao-entre-python-e-c-c-segunda-parte\/","title":{"rendered":"Cython &#8211; Integra\u00e7\u00e3o entre Python e C\/C++ &#8211; Segunda Parte"},"content":{"rendered":"<p>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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"github\">GITHUB<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/marcelomaurin\/cython\">https:\/\/github.com\/marcelomaurin\/cython<\/a><\/p>\n\n\n\n<p>Primeiramente vamos criar nosso projeto em C.<\/p>\n\n\n\n<p>Primeiramente criamos um arquivo Makefile<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CC= gcc\nSAMPLE=sample.pyx\nLIBS= `pkg-config --cflags --libs python3`\nTARGET=hello\nSOURCE= \\\nhello.c \\\nsample.c\n\n\n\nall: clean compile install\n\nclean:\n\trm .\/sample.c\n\trm .\/sample.h\n\n\ncompile:\n\tcython .\/$(SAMPLE)\n\t$(CC) $(SOURCE) $(LIBS) -o .\/$(TARGET)\n\ninstall:\n\tcp .\/$(TARGET) \/usr\/local\/bin\/\n\r<\/code><\/pre>\n\n\n\n<p>No exemplo acima, temos dois pontos chaves no nosso c\u00f3digo.<\/p>\n\n\n\n<p>A inclus\u00e3o do <strong>sample.pyx<\/strong> que ir\u00e1 ser convertido em um <strong>sample.c<\/strong> e um <strong>sample.h<\/strong>, conforme script do <strong>compile<\/strong>.<\/p>\n\n\n\n<p>Agora iremos mostrar o c\u00f3digo do C, que chamar\u00e1 o python, nosso c\u00f3digo: hello.c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;stdio.h>\n#include \"sample.h\"\n\nint main()\n{\n\tcall_hello();\n}<\/code><\/pre>\n\n\n\n<p>Neste c\u00f3digo vemos uma chamada para a lib sample.h, que ser\u00e1 criada pelo cython a partir do script.<\/p>\n\n\n\n<p>A fun\u00e7\u00e3o Call_hello \u00e9 declarada j\u00e1 no python, e a seguir vemos como ela \u00e9 apresentada.<\/p>\n\n\n\n<p>Fonte: hello.pyx<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from sam import sam\n\ncdef public void call_hello():\n\tsam.hello()\r\r<\/code><\/pre>\n\n\n\n<p>Agora iremos escrever o sam.py, que ser\u00e1 chamado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\ndef hello():\n    print(\"Hello World\")<\/code><\/pre>\n\n\n\n<p>Por fim, compilamos o script:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>make compile<\/p><\/blockquote>\n\n\n\n<p>E rodamos o mesmo<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>.\/hello<\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"documentacao-de-apoio\">Documenta\u00e7\u00e3o de Apoio<\/h2>\n\n\n\n<p><a href=\"https:\/\/riptutorial.com\/Download\/cython.pdf\">https:\/\/riptutorial.com\/Download\/cython.pdf<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"foruns-e-artigos-coligados\">F\u00f3runs e Artigos coligados<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"http:\/\/docs.cython.org\/en\/latest\/src\/tutorial\/pure.html\" target=\"_blank\">http:\/\/docs.cython.org\/en\/latest\/src\/tutorial\/pure.html<\/a><\/li><li><a href=\"https:\/\/itasahobby.gitlab.io\/posts\/swigintegration\/\">https:\/\/itasahobby.gitlab.io\/posts\/swigintegration\/<\/a><\/li><li><a href=\"https:\/\/stackoverflow.com\/questions\/22589868\/call-python-code-from-c-via-cython\">https:\/\/stackoverflow.com\/questions\/22589868\/call-python-code-from-c-via-cython<\/a><\/li><li><a href=\"https:\/\/realpython.com\/build-python-c-extension-module\/\">https:\/\/realpython.com\/build-python-c-extension-module\/<\/a><\/li><\/ul>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>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 No exemplo acima, temos dois pontos chaves no nosso c\u00f3digo. A inclus\u00e3o do sample.pyx que ir\u00e1 [&hellip;]<\/p>","protected":false},"author":1,"featured_media":194,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[61,51],"tags":[113,115,116,151,339],"class_list":["post-21086","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-c","category-python","tag-c","tag-c-c","tag-c-2","tag-cython","tag-python"],"_links":{"self":[{"href":"https:\/\/maurinsoft.com.br\/wp\/en\/wp-json\/wp\/v2\/posts\/21086","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maurinsoft.com.br\/wp\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/maurinsoft.com.br\/wp\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/en\/wp-json\/wp\/v2\/comments?post=21086"}],"version-history":[{"count":0,"href":"https:\/\/maurinsoft.com.br\/wp\/en\/wp-json\/wp\/v2\/posts\/21086\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/en\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/maurinsoft.com.br\/wp\/en\/wp-json\/wp\/v2\/media?parent=21086"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/en\/wp-json\/wp\/v2\/categories?post=21086"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/maurinsoft.com.br\/wp\/en\/wp-json\/wp\/v2\/tags?post=21086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}