在 ASP .NET 6 Azure AppService 中运行复杂的 Python 脚本

问题描述 投票:0回答:0

我有一个计算值的复杂 python 脚本,将代码转换为 C# 不是一个选项(代码使用 pandas 和其他 python 包)。

我希望能够将此代码作为我的 ASP .NET 6 Web 应用程序的一部分运行,该应用程序在 azure 中部署为 AppService。

我发现/想到了 3 种可能的解决方案:

  1. IronPython(基本没用,或者不知道怎么正确安装CPython包)
  2. 部署一个 python API 并从 ASP.NET 调用它
  3. 在 ASP.NET 中将 python 代码作为新进程运行

我认为第三个选项是最简单的,我就是这样做的。首先,我看到 AppService 预装了 python 版本但相当旧,所以我所做的是在本地下载我需要的版本并将整个 python 文件夹存档,包括我需要的包,然后将它们复制到 AppService 磁盘(我包括存档在我的代码中并将其解压缩到我的发布 CI/CD 管道中)。然后我所要做的就是将我的 python 脚本放在该文件夹中并运行它们。

为了运行一个新进程,我使用了这段代码(从here复制):

string fileName = @"path\sample_script.py";

Process p = new Process();
p.StartInfo = new ProcessStartInfo(@"path\python.exe", fileName)
{
    RedirectStandardOutput = true,
    UseShellExecute = false,
    CreateNoWindow = true
};
p.Start();

string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();

您是否看到更好的选择或有任何建议来改进我的解决方案? 我在徘徊是否可以在 azure devOps 管道中构建 python 环境而不使用我在本地构建的存档。

python asp.net .net azure-web-app-service ironpython
© www.soinside.com 2019 - 2024. All rights reserved.