Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 1683|Resposta: 4

[Fonte] .NET/C# chama o ambiente Python para executar .py scripts

[Copiar link]
Postado em 2025-2-11 16:01:21 | | | |
Requisitos: Programação em Python é muito popular atualmente, amplamente usada em análise de dados e pesquisa científica, grandes modelos, deep learning, etc., alguns algoritmos de modelos são escritos em python, precisam usar .NET para executar scripts em python, passar parâmetros e obter resultados. As soluções online são: execução de processos, IronPython, pythonnet e, por fim, pythonnet.

pythonnet-Python.NET

Python.NET é um pacote de software que permite aos programadores Python integrar o .NET Universal Language Runtime (CLR) quase sem problemas e oferece aos desenvolvedores .NET ferramentas poderosas de script de aplicações. Ele permite que código Python interaja com o CLR e também pode ser usado para incorporar Python em aplicações .NET.

Endereço:O login do hiperlink está visível.

Preparar o ambiente Python

Este artigo usa python-3.13.2-embed-amd64 como ambiente de execução, referência:

Pacotes de embeds em Python instalam pacotes usando pip
https://www.itsvse.com/thread-10941-1-1.html

Pacote embed Python-3.13.2 para download de 64 bits:O login do hiperlink está visível.

Crie um novo console .NET 8

Crie uma nova referência de console .NET 8 com a seguinte referência:

Já que pythonnet vai usarFormateador Binárioa seguinte exceção será lançada durante a execução:

Exceção não resolvida. System.NotSupportedException: A serialização e desserialização do BinaryFormatter estão desativadas nesta aplicação. VerO login do hiperlink está visível.Para mais informações.

Para resolver o problema, edite o nó .csproj <PropertyGroup> e adicione a seguinte configuração:

A configuração completa é a seguinte:

Py.GIL() é uma função importante na biblioteca Python.NET para obter e liberar Bloqueios Globais de Interpretador (GILs). GIL é um mecanismo no interpretador CPython que garante que apenas uma thread esteja executando bytecode em Python ao mesmo tempo. Isso é importante em um ambiente multi-thread, especialmente se o código Python e .NET estiver misturado.

O tipo float de Python é, na verdade, um float de dupla precisão (64 bits), correspondente ao tipo duplo de C#.

Execute código em Python diretamente

Para código simples em Python, que pode ser executado diretamente, o código é o seguinte:



Chame uma função Python

O código é o seguinte:



Implantar no ambiente Linux para testes

Disponíveis para operação normal, os testes são os seguintes:



Referência:
O login do hiperlink está visível.
O login do hiperlink está visível.
O login do hiperlink está visível.




Anterior:O Linux usa pyenv para instalar o ambiente Python
Próximo:Plugin de Assistência ao Desenvolvimento de Código VS Angular Série 18 (Trinta e Um)
 Senhorio| Postado em 11-02-2025 16:08:17 |
Chame uma função Python com um array de lista (<classe 'list'>) como argumento


O código é o seguinte:


 Senhorio| Postado em 2025-2-11 16:25:40 |
C# chama uma função python para obter o valor de retorno da tupla <classe 'tuple'>

O código é o seguinte:



 Senhorio| Postado em 24-02-2025 09:27:40 |
CSnakes- Uma ferramenta para incorporar código Python em projetos .NET

Fonte:O login do hiperlink está visível.
Documentação:O login do hiperlink está visível.
 Senhorio| Postado em 2025-9-1 16:01:12 |
Compilar para execução em bytecode

Referência:O login do hiperlink está visível.
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com