溫馨提示×

c#中如何調(diào)用python

c#
小億
175
2024-09-05 05:02:33
欄目: 編程語言

在C#中調(diào)用Python腳本,可以使用Pythonnet庫(Python for .NET)或者IronPython庫。這里我將分別介紹這兩種方法。

  1. 使用Pythonnet庫(Python for .NET):

首先,需要安裝Pythonnet庫。在命令行中運行以下命令:

pip install pythonnet

然后,在C#項目中添加對Pythonnet庫的引用。在解決方案資源管理器中,右鍵單擊項目名稱,選擇“添加”->“引用”,然后在“程序集”選項卡中找到并添加Pythonnet庫。

接下來,編寫C#代碼調(diào)用Python腳本。例如,假設(shè)有一個名為example.py的Python腳本,內(nèi)容如下:

def add(a, b):
    return a + b

在C#中調(diào)用此腳本:

using System;
using Python.Runtime;

namespace CallPythonFromCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (Py.GIL()) // 初始化Python引擎
            {
                dynamic py = Py.Import("example"); // 導(dǎo)入Python腳本
                int result = py.add(3, 4); // 調(diào)用Python函數(shù)
                Console.WriteLine("Result: " + result); // 輸出結(jié)果
            }
        }
    }
}
  1. 使用IronPython庫:

首先,需要安裝IronPython庫。在命令行中運行以下命令:

pip install IronPython

然后,在C#項目中添加對IronPython庫的引用。在解決方案資源管理器中,右鍵單擊項目名稱,選擇“添加”->“引用”,然后在“程序集”選項卡中找到并添加IronPython庫。

接下來,編寫C#代碼調(diào)用Python腳本。例如,假設(shè)有一個名為example.py的Python腳本,內(nèi)容如下:

def add(a, b):
    return a + b

在C#中調(diào)用此腳本:

using System;
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;

namespace CallPythonFromCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            ScriptEngine engine = Python.CreateEngine(); // 創(chuàng)建Python引擎
            ScriptSource source = engine.CreateScriptSourceFromFile("example.py"); // 從文件中加載Python腳本
            ScriptScope scope = engine.CreateScope(); // 創(chuàng)建Python作用域
            source.Execute(scope); // 執(zhí)行Python腳本

            Func<int, int, int> add = scope.GetVariable<Func<int, int, int>>("add"); // 獲取Python函數(shù)
            int result = add(3, 4); // 調(diào)用Python函數(shù)
            Console.WriteLine("Result: " + result); // 輸出結(jié)果
        }
    }
}

這樣,你就可以在C#中調(diào)用Python腳本了。注意,這兩種方法都需要Python環(huán)境。如果沒有安裝Python,需要先安裝Python。

0