Интеграция сценариев Python в приложения C# может обеспечить дополнительную функциональность и использовать возможности обоих языков. В этой статье блога мы рассмотрим семь различных методов запуска сценария Python на C#, а также приведем примеры кода. Давайте погрузимся!
Метод 1: использование Process.Start
using System.Diagnostics;
class Program
{
static void Main()
{
Process.Start("python", "script.py");
}
}
Метод 2: использование IronPython
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
class Program
{
static void Main()
{
ScriptEngine engine = Python.CreateEngine();
ScriptScope scope = engine.CreateScope();
ScriptSource source = engine.CreateScriptSourceFromFile("script.py");
source.Execute(scope);
}
}
Метод 3: использование Python.NET
using Python.Runtime;
class Program
{
static void Main()
{
using (Py.GIL())
{
dynamic py = Py.Import("script");
py.Run();
}
}
}
Метод 4: внедрение интерпретатора Python
using System;
using Python.Runtime;
class Program
{
static void Main()
{
using (Py.GIL())
{
dynamic py = Py.Import("__main__");
py.__dict__["__builtins__"] = Py.Import("__builtin__");
py.execfile("script.py");
}
}
}
Метод 5: использование библиотеки Pythia
using Pythia.Core;
class Program
{
static void Main()
{
PyEngine.Initialize();
dynamic py = PyEngine.CreateModule("script");
py.Run();
PyEngine.Shutdown();
}
}
Метод 6: использование ZeroMQ
using System;
using NetMQ;
using NetMQ.Sockets;
class Program
{
static void Main()
{
using (var context = NetMQContext.Create())
using (var requester = context.CreateRequestSocket())
{
requester.Connect("tcp://localhost:5555");
requester.SendFrame("script.py");
string result = requester.ReceiveFrameString();
Console.WriteLine(result);
}
}
}
Метод 7. Использование REST API
using System;
using System.Net.Http;
class Program
{
static void Main()
{
using (var httpClient = new HttpClient())
{
var response = httpClient.GetAsync("http://localhost:5000/run-script").Result;
string result = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(result);
}
}
}
Запуск сценария Python из приложения C# открывает множество возможностей для использования сильных сторон обоих языков. В этой статье мы рассмотрели семь методов с примерами кода, включая использование Process.Start, IronPython, Python.NET, внедрение интерпретатора Python, библиотеки Pythia, ZeroMQ и интеграцию REST API. Выберите метод, который лучше всего соответствует вашим требованиям, и начните легко включать сценарии Python в свои приложения C#!