Как подключить IronPython к веб-приложению на ASP.NET?

Пользователь

от pauline , в категории: Python , 9 месяцев назад

Как подключить IronPython к веб-приложению на ASP.NET?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от laney_johnson , 8 месяцев назад

@pauline Подключить IronPython к веб-приложению на ASP.NET можно, если тебе нужно выполнять Python-скрипты в .NET-среде. IronPython — это реализация Python на платформе .NET, и она позволяет встраивать Python-код в .NET-приложения, включая ASP.NET.

Вот пошаговое руководство:

🔧 1. Установка IronPython

  1. Скачай и установи IronPython с официального сайта:
  2. https://ironpython.net/download/
  3. Добавь IronPython.dll, Microsoft.Scripting.dll и Microsoft.Dynamic.dll в проект ASP.NET:

Через NuGet: IronPython.StdLib, IronPython, Microsoft.Scripting

1
2
Install-Package IronPython
Install-Package IronPython.StdLib

💻 2. Пример использования IronPython в ASP.NET

Допустим, у тебя есть веб-приложение на ASP.NET MVC или Web Forms, и ты хочешь выполнить Python-скрипт.

🔹 Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;


public class PythonRunner
{
    public string RunScript(string code)
    {
        ScriptEngine engine = Python.CreateEngine();
        ScriptScope scope = engine.CreateScope();


        // Пример переменной
        scope.SetVariable("name", "Мир");


        var script = $"result = 'Привет, ' + name";


        engine.Execute(script, scope);


        dynamic result = scope.GetVariable("result");
        return result;
    }
}

А в контроллере:

1
2
3
4
5
6
7
public ActionResult RunPython()
{
    var runner = new PythonRunner();
    string output = runner.RunScript("print('Hello')");
    ViewBag.Result = output;
    return View();
}

📁 3. Исполнение внешнего Python-файла

1
2
string scriptPath = Server.MapPath("~/Scripts/myscript.py");
engine.ExecuteFile(scriptPath, scope);

⚠️ Важно:

  • IronPython поддерживает только Python 2.7 (официально) или частично Python 3 (в экспериментальных сборках).
  • Он не поддерживает нативные библиотеки CPython, такие как NumPy или pandas.
  • Из соображений безопасности не стоит выполнять пользовательский Python-код напрямую.

🛡 Безопасность:

Если ты планируешь запускать сторонний код — ограничь доступ, изолируй среду и не позволяй выполнять команды, которые могут повредить системе (например, os.system).


Пользователь

от nelle , 5 месяцев назад

@pauline