Python ctypes

Python ctypes
“O módulo Python Ctypes será revisado neste artigo. Ao implementar o código Python, geralmente sentiremos o requisito de incluir métodos que foram possivelmente criados em outro domínio. Uma das razões mais frequentes para isso é que o Python é mais lento do que outras linguagens de programação, como C ou C++. O desempenho pode ser bastante aprimorado, realizando cálculos complexos em uma linguagem rápida e eficiente.”

Na realidade, alguns módulos Python, como Numpy e OpenCV, fazem uso de recursos C ou C ++. O módulo Python Ctypes torna viável para os usuários integrar módulos como este e empregar seus métodos.

Para discutir o gerenciamento do armazenamento em Ctypes, alguns procedimentos podem servir como sua fundação. O fato de os usuários não precisarem gastar mais tempo gerenciando o armazenamento de dados tem sido um dos melhores aspectos da mudança da linguagem C para a linguagem python. O idioma que adquire o armazenamento deve liberá -lo imediatamente enquanto estiver usando ctypes ou qualquer outra técnica. Também mostraremos como carregar uma biblioteca C e chamar suas funções.

Vamos executar uma variedade de códigos no Ubuntu 20.04 Neste artigo. Antes de entrar nos comandos, primeiro acessamos o terminal.

Vamos executar o comando $ nano soma.c. A palavra -chave "nano" está sendo usada para abrir o arquivo necessário. Aqui temos que abrir a soma.Arquivo C.

$ nano soma.c

O arquivo de nano soma.C será aberto com sucesso executando o comando acima. Antes de qualquer outra coisa, construiremos nosso_function (). Demos a esta função dois parâmetros, que incluem "num_numbers" e um ponteiro. O argumento "num_numbers" representa os números totais que temos, e o parâmetro ponteiro aponta para o número.

Na próxima etapa, inicializamos a variável "eu". Declaramos uma variável "soma" e o definimos como 0. Além disso, utilizaremos o loop "para". Vamos iterar em todos os valores de i = 0 até que o valor da variável de loop “i” seja menor que num_numbers. Na última parte do loop "for", fazemos incriminação no valor de "i" por 1. Dentro do loop "for", adicionaremos os números [i] à variável "soma". No final, estamos usando a declaração de retorno. Isso retorna o valor da soma. A imagem anterior mostra o código -fonte do arquivo.

Vamos tocar em Ctrl+x para sair da soma.Arquivo C. Agora, mais uma vez, abrimos o terminal. Vamos começar a utilizar ctypes para integrar um módulo simples com apenas um método no script python. No entanto, não podemos associar um padrão .Arquivo C. O comando pode ser usado para criar um pacote padrão, que é o que precisamos fazer.

Então, entramos no comando cc -fpic -shared -o Libsum.Então da soma.c. Nós atribuímos a extensão .C para o arquivo. Qualquer nome será usado para dar o nome do arquivo, mas mantenha as extensões em consideração ao utilizar este comando.

Na etapa, executaremos o comando "dir" para abrir o diretório "Libsum.Então soma.C ”.

$ dir

Depois de abrir o diretório, criaremos um novo arquivo denominado teste.py. Nano seria aplicado para abrir esse arquivo.

$ nano teste.py

Depois de abrir o teste.arquivo py, começamos a codificação. Os ctypes devem ser integrados ao código no início. Em seguida, criamos uma variável "soma", que vem pelos ctypes.CDLL (“./Libsum.então"). Temos que ter cuidado com os dados adequadamente; Ctypes permitem aos usuários importar uma biblioteca padrão e recuperar funções explicitamente disso. Isso exige que o programa esteja sendo chamado no mesmo caminho que a biblioteca padrão e que ambos já estão localizados aqui. Quando incorporamos o .Arquivo PY Com a biblioteca padrão, houve várias especificações do sistema operacional sobre diretórios de pesquisa de bibliotecas.

Além disso, chamamos a soma da função.nossa função.argrtpes. Definimos o valor dessa função como ctypes.c_int, ctypes.Ponteiro (ctypes.c_int). Então definimos Our_function (). Nós fornecemos os números como seus argumentos. Criamos uma variável global denominada _sum. Declaramos uma variável num_numbers. Dentro dessa variável, precisamos descobrir o comprimento dos números definidos, para que usaremos o método len (). Nós criamos uma matriz. Esta matriz é armazenada em uma variável "Array_type". Especificamos o valor como ctypes.c_int * num_numbers para a variável Array_type.

Agora inicializamos uma nova variável, “resultado”. Aqui chamamos a soma da função.Our_function (stices.c_int (num_numbers). Da mesma forma, fornecemos o ponteiro do número (*NOM) para a instrução Array_type. Para encerrar o código, digitamos a declaração de retorno. Dentro desta função, passamos uma variável "resultado" como seu parâmetro. O tipo de dados da variável de resultado é um número inteiro. A imagem anterior mostra o código -fonte do arquivo.

Vamos usar isso para executar o programa de qualquer arquivo. Depois que a biblioteca foi importada, isso será salvo em um atributo python contendo procedimentos para cada módulo definido.

Vamos renomear o teste.arquivo py com a soma.arquivo py.

Teste $ MV.py soma.py

Vamos criar um novo arquivo, “Teste.py ”, e então será aberto usando a palavra -chave nano antes do nome do arquivo.

$ nano teste.py

O teste.O arquivo py será aberto. Agora vamos importar a soma. Na próxima linha, chamamos a função print (). Dentro desta função, chamamos a soma do método.Our_function (). O Our_function () contém os cinco primeiros valores numéricos como seus argumentos. A imagem anterior mostra o código -fonte do arquivo.

Aqui vamos executar o arquivo “Teste.py ". Escrevemos o teste de comando $ python3.py. Este comando será executado e o resultado será mostrado no terminal.

Teste $ python3.py

Conclusão

Como usar os ctypes de Python foi abordado neste artigo. Nós executamos os comandos no Ubuntu 20.04. Nós criamos e abrimos uma “soma.Arquivo C ”com a ajuda do termo nano. Neste arquivo, construímos Our_Function () e depois estamos definindo nossa função. Em seguida, abrimos o teste.arquivo py. Dentro deste arquivo, podemos chamar Our_function () e depois utilizar esta função.