2011-04-08 53 views
7

Tengo un código python que realiza una determinada tarea. Necesito llamar a este código desde C# sin convertir el archivo python como un .exe, ya que toda la aplicación se basa en C#.Llamar código python (archivos .py) desde C#

¿Cómo puedo hacer esto?

+0

try http://pythonnet.github.io/ – denfromufa

Respuesta

6

Si su código python se puede ejecutar a través de IronPython, este es definitivamente el camino a seguir: ofrece la mejor interoperabilidad y significa que podrá usar objetos .Net en sus scripts.

Hay muchas formas de invocar scripts de IronPython desde C#, desde compilar el script como ejecutable hasta ejecutar un único archivo de script o evento ejecutando dinámicamente expresiones a medida que el usuario escribe - verifique la documentación y publique otra pregunta si aún tienes problemas

Si su script es un script de CPython y no se puede adaptar para trabajar con IronPython, entonces sus opciones son más limitadas. Creo que existe alguna interoperabilidad de CPython/C#, pero no pude encontrarla después de una búsqueda rápida en Google. Lo mejor que se me ocurre es invocar el script directamente usando python.exe y la clase Process.

5

Eche un vistazo a IronPython.

Según sus respuestas y comentarios, creo que lo mejor que puede hacer es incorporar IronPython en su aplicación. Como siempre, hay un SO question relevante acerca de esto. Como dijo Kragen, es importante no confiar en un módulo CPython.

+0

Convierte el código python en un archivo .exe y luego es llamado por el C#. Quiero el programa Python llamado directamente por el código C#. – Raj

+0

@ user692856 Siempre puede compilar el código python en una DLL en lugar de un EXE usando IronPython, y luego hacer referencia a eso desde su proyecto C#. –

1

Process.Start es lo que buscas. Le permite llamar a otro programa y pasarle argumentos.