C# 如何在ASP.net中的IronPython库上导入第三方Python库

C# 如何在ASP.net中的IronPython库上导入第三方Python库,c#,python,asp.net,ironpython,C#,Python,Asp.net,Ironpython,我有一个执行python脚本的函数。python脚本调用jira库来连接到它的服务器。然后它将返回数据并为其创建excel文件。当我手动执行python脚本时,它运行正常,但问题是当我在asp函数中调用它时,它返回错误 没有模块名jira 我猜IronPython没有jira的库,因为我刚刚在Python库上安装了它 我甚至尝试通过进程来执行脚本,它被触发了,但不幸的是,它没有返回任何内容 下面是我通过IronPython执行python的代码 ScriptRuntimeSetup setup

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

没有模块名jira

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

我甚至尝试通过进程来执行脚本,它被触发了,但不幸的是,它没有返回任何内容

下面是我通过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中


当您通过c#或ASP.NET执行python时,这是一个常见的问题。唯一的原因是C#希望所有二进制文件都以汇编的形式出现,而python希望以模块的形式出现。

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

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


在运行时设置路径这种方法只针对应用程序的生命周期进行设置。例如,如果任何应用程序想要使用项目中可用的“已知”模块,那么它可以使用python中的sys模块设置路径运行时。但是请记住,一旦程序被执行,那么临时变量就会丢失。因此,这种代码可以在c#或python中使用。在c#中使用System.IO名称空间,或者在Python中使用sys模块。嗨,你能给我举个例子吗?GetSearchParth和SetSearchPath是否不够?您好,此链接可能会帮助您为流程设置变量