我有一个计算值的复杂 python 脚本,将代码转换为 C# 不是一个选项(代码使用 pandas 和其他 python 包)。
我希望能够将此代码作为我的 ASP .NET 6 Web 应用程序的一部分运行,该应用程序在 azure 中部署为 AppService。
我发现/想到了 3 种可能的解决方案:
我认为第三个选项是最简单的,我就是这样做的。首先,我看到 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 环境而不使用我在本地构建的存档。