Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 1683|Respuesta: 4

[Fuente] .NET/C# llama al entorno Python para ejecutar scripts .py

[Copiar enlace]
Publicado el 11-2-2025 16:01:21 | | | |
Requisitos: La programación en Python es muy popular hoy en día, ampliamente utilizada en análisis de datos e investigación científica, grandes modelos, aprendizaje profundo, etc., algunos algoritmos de modelos están escritos en python, necesitan usar .NET para ejecutar scripts en python, pasar parámetros y obtener resultados. Las soluciones online son: ejecución de procesos, IronPython, pythonnet y, finalmente, pythonnet.

pythonnet-Python.NET

Python.NET es un paquete de software que permite a los programadores de Python integrar casi sin problemas el Universal Language Runtime (CLR) .NET y proporciona a los desarrolladores de .NET potentes herramientas de scripting de aplicaciones. Permite que el código Python interactúe con el CLR y también puede utilizarse para incrustar Python en aplicaciones .NET.

Dirección:El inicio de sesión del hipervínculo es visible.

Preparar el entorno Python

Este artículo utiliza python-3.13.2-embed-amd64 como entorno de ejecución, referencia:

Los paquetes de embed de Python instalan paquetes usando pip
https://www.itsvse.com/thread-10941-1-1.html

Paquete embeded Python-3.13.2 descarga de 64 bits:El inicio de sesión del hipervínculo es visible.

Crea una nueva consola .NET 8

Crea una nueva referencia de consola .NET 8 con la siguiente referencia:

Ya que pythonnet usaráFormateador binarioClase, se lanzará la siguiente excepción durante la ejecución:

Excepción no gestionada. System.NotSupportedException: La serialización y deserialización de BinaryFormatter están deshabilitadas dentro de esta aplicación. VerEl inicio de sesión del hipervínculo es visible.Para más información.

Para resolver el problema, edita el nodo .csproj <PropertyGroup> y añade la siguiente configuración:

La configuración completa es la siguiente:

Py.GIL() es una función importante en la biblioteca Python.NET para obtener y liberar bloqueos globales de intérprete (GILs). GIL es un mecanismo en el intérprete CPython que asegura que solo un hilo esté ejecutando bytecode en Python en cada momento. Esto es importante en un entorno multihilo, especialmente si se mezcla código Python y .NET.

El tipo de flotador de Python es en realidad un flotador de doble precisión (64 bits), correspondiente al doble tipo de C#.

Ejecutar código en Python directamente

Para el código simple en python, que puede ejecutarse directamente, el código es el siguiente:



Llama a una función de Python

El código es el siguiente:



Desplegar en entorno Linux para pruebas

Disponibles para funcionamiento normal, las pruebas son las siguientes:



Referencia:
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.




Anterior:Linux utiliza pyenv para instalar el entorno Python
Próximo:Plugin de Asistencia para el Desarrollo de Código VS Angular Serie 18 (Treinta y Uno)
 Propietario| Publicado el 11-2-2025 16:08:17 |
Llamar a una función Python con un array de lista (<clase 'list'>) como argumento


El código es el siguiente:


 Propietario| Publicado el 11-2-2025 16:25:40 |
C# llama a una función de python para obtener el valor de retorno de la tupla <clase 'tuple'>

El código es el siguiente:



 Propietario| Publicado el 24-2-2025 09:27:40 |
CSnakes- Una herramienta para incrustar código Python en proyectos .NET

Fuente:El inicio de sesión del hipervínculo es visible.
Documentación:El inicio de sesión del hipervínculo es visible.
 Propietario| Publicado el 2025-9-1 16:01:12 |
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com