C#通过pythonnet直接调用Python

C#通过pythonnet直接调用Python

1、下载python-embed版本

在这里插入图片描述
可以百度获得到,这个可以不需要安装python,并且不受限与电脑本地的版本

2、解压并且把涉及的包复制进去

pip下来的包在安装目录下,\Lib\site-packages
在这里插入图片描述

同时把需要运行的脚本也放进去
在这里插入图片描述
脚本对外建议尽量用基本的数据类型,不要在C#内执行过多操作!!!!

3、在C#项目中Nuget得到pythonnet

在这里插入图片描述
这里要注意,这玩意对net版本有要求,注意匹配

4、将刚刚准备好的Python文件夹放到执行exe的文件夹下

这个是用于等会程序中调用
在这里插入图片描述

5、先初始化各种位置

这里注意配置,不然后面执行会抛出异常

    //python环境配置(python-3.10.11-embed解压后文件夹位置,使用到的模块文件夹pip下载后,也复制到此文件夹下)
    string FilePath = System.AppDomain.CurrentDomain.BaseDirectory;
    string pythonHomePath = FilePath + "\\python310";
    string dllPath = pythonHomePath + "\\python310.dll";

    Runtime.PythonDLL = dllPath;//设置dll位置
    PythonEngine.PythonHome = pythonHomePath;//设置python文件夹位置
    PythonEngine.Initialize();//初始化
    PythonEngine.BeginAllowThreads();//多线程初始化

这个只需要执行一次,多线程那一行按需执行

6、调用Python的程序

    string Res = "";
    //调用python
    using (var _ = Py.GIL())
    {
        dynamic nx = Py.Import("JsonNetCal");//调用模块
        Res = nx.CalHashByJson(JsonData);//执行函数
    }

这里因为使用了dynamic,会各种不方便,所有不建议在这里执行过多的内容。

7、祝好运

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值