簡體   English   中英

如何在 ASP.net 中的 IronPython 庫上導入 3rd 方 Python 庫

[英]How to Import 3rd party Python Library on IronPython Library in ASP.net

我有一個執行 python 腳本的函數。 python 腳本調用 jira 庫連接到它的服務器。 然后它將返回數據並為其創建一個 excel 文件。 當我手動執行時,python 腳本運行正常,但問題是當我在我的 asp 函數上調用它時它返回錯誤

沒有模塊名稱 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 模塊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM