C# 调用Python 并包括第三方库

TestDemo.py文件内容

#注意 本机要pip安装numpy库
import numpy as np

def func(a,b):
    result=np.sqrt(a+b)
    return result

C#代码

//nugeta 里面安装pythonnet  注意:本机要pip安装numpy库
static void Main(string[] args)
{
    //python的安装目录
    string pathToVirtualEnv = @"D:\Programs\Python\Python311";
    Runtime.PythonDLL = Path.Combine(pathToVirtualEnv, "python311.dll");
    PythonEngine.PythonHome = Path.Combine(pathToVirtualEnv, "python.exe");
    //这里面包含三个目录 用分号(;)隔开,D:\\tempCode\\是TestDemo.py存放目录
    PythonEngine.PythonPath = $"{pathToVirtualEnv}\\Lib\\site-packages;{pathToVirtualEnv}\\Lib;D:\\tempCode\\";
    PythonEngine.Initialize();
    using (Py.GIL())
    {   // TestDemo为TestDemo.py文件,在放在D:\\tempCode\\ 目录
        dynamic np = Py.Import("TestDemo");
        double r = np.func(9, 27);
        Console.WriteLine($"计算结果{r}");//计算结果为6
    }
    //也可以直接搞用第三方库numpy里面的方法
    using (Py.GIL())
    {   
        dynamic np = Py.Import("numpy");
        double r = np.sqrt(64);
        Console.WriteLine($"计算结果{r}");//计算结果为8
    }
}

本文来自 www.luofenming.com