gpt4 book ai didi

c# - 如何在 ASP.net 中的 IronPython 库上导入第 3 方 Python 库

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:06 25 4
gpt4 key购买 nike

我有一个执行 python 脚本的函数。 python 脚本调用 jira 库来连接到其服务器。然后它将返回数据并为其创建一个 Excel 文件。当我手动执行时,python 脚本运行正常,但问题是当我在 asp 函数上调用它时,它返回错误

there are no module name jira

我猜 IronPython 没有 jira 库,因为我刚刚将它安装在 Python 库上。

我什至尝试通过 Process 执行脚本,它被触发,但不幸的是它没有返回任何内容。

这是我通过 IronPython 执行 python 的代码

 ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(null);
ScriptRuntime runtime = new ScriptRuntime(setup);
ScriptEngine engine = Python.GetEngine(runtime);
var paths = engine.GetSearchPaths();
paths.Add(@"C:\Users\jdecena\AppData\Local\Programs\Python\Python35\Lib");
engine.SetSearchPaths(paths);
ScriptSource source = engine.CreateScriptSourceFromFile("C:/Dave/jirautomatic/try.py");
ScriptScope scope = engine.CreateScope();
source.Execute(scope);
dynamic Generate = scope.GetVariable("connect_to_jira_and_get_projects");
dynamic gen = Generate();
gen();

这是我通过进程执行 python 的代码

Process proc = new Process();
proc.StartInfo.FileName = @"C:\Dave\jirautomatic\try.py";
proc.Start();
proc.WaitForExit();
proc.Dispose();

有没有办法可以将 Python 上的库包含到 IronPython 中?

TIA

最佳答案

这是通过 C# 或 ASP.NET 执行 python 时的常见问题。唯一的原因是C#期望所有二进制文件都是程序集的形式,而Python期望所有二进制文件都是模块的形式。

对于这个问题,有两种方法

在系统变量中设置路径

这是将模块设置为系统变量的简单方法。一旦进程启动,python将自动搜索系统路径。您可以直接在 PATH 变量中设置路径,也可以创建名为 PYTHONPATH

的新变量

在运行时设置路径

这种方法仅在应用程序的生命周期内进行设置。例如,如果任何应用程序想要使用项目中可用的“已知”模块,那么它可以使用 python 中的 sys 模块设置运行时路径。但请记住,一旦程序执行完毕,临时变量就会丢失。所以这种代码可以在 C# 或 Python 中使用。在 C# 中使用 System.IO 命名空间,在 Python 中使用 sys 模块

关于c# - 如何在 ASP.net 中的 IronPython 库上导入第 3 方 Python 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36881175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com