C# 中调用 Python 库的方法 (.Net 6.0)

利用 Pythonnet 在 C# 中调用 Python 库的学习过程记录下来。

1、先打开VS 2022 ,创建一个控制台APP,选择 .Net 6.0。

2、在NeGet中搜索 “Pythonnet”,我选择了 “pythonnet_netstandard_py37_win” 版本。 

3、由于选择了 py37_win 版本,那么就要安装 Python 3.7版本喽。

下载地址如下:

https://www.python.org/ftp/python/3.7.9/python-3.7.9-amd64.exe

当然要手动安装一下啦,可能需要重启系统。

4、返回 VS,录入代码如下。(基本是从 Pythonnet 官网复制过来的)

using Newtonsoft.Json;
using Python.Runtime;

//测试在C#中调用Python库的方法,首先要安装 python 3.7的release版本,否则报错。

{
    using (Py.GIL())
    {
        dynamic np = Py.Import("numpy");
        Console.WriteLine(np.cos(np.pi * 2));

        dynamic sin = np.sin;
        Console.WriteLine(sin(5));

        double c = np.cos(5) + sin(5);
        Console.WriteLine(c);

        dynamic a = np.array(new List<int> { 1, 2, 3 });
        Console.WriteLine(a.dtype);

        dynamic b = np.array(new List<int> { 6, 5, 4 }, dtype: np.int32);
        Console.WriteLine(b.dtype);
        foreach (var item in a * b)
        {

             //这个是我加的,测试能不能序列化 dynamic  变量,然后再反序列为 int 类型
            var js = JsonConvert.SerializeObject(item.ToString());
            var m = JsonConvert.DeserializeObject<int>(js);
            Console.WriteLine(m);

            //也可以直接拆箱为 int

             //var i = (int) item;
            //Console.WriteLine(i);
        }

        Console.WriteLine(a * b);
        Console.ReadKey();
    }
}
 

结果如下:

1.0
-0.9589242746631385
-0.6752620891999122
int32
int32
6
10
12
[ 6 10 12]
 

注: 运行环境是 Windows 10 。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值