C#使用pythonnet简单示例

1.nuget安装pythonnet

2.编写python测试文件 example.py内容如下

复制代码
def HelloWorld():
     print("Hello world")

class Calculator:
    def add(self,a:float,b:float)->float:
         return a+b

3.c#下测试

复制代码
    Runtime.PythonDLL = "C:\\Program Files\\Python312\\python312.dll";
    PythonEngine.Initialize();
 
    PythonEngine.BeginAllowThreads();
    

using (Py.GIL())
    {
        string FileName = "example";
        dynamic mymodule = Py.Import(FileName);

        //dynamic py = mymodule.HelloWorld();

        dynamic calculator = mymodule.Calculator();
        float x = calculator.add(12.1, 23.23);

        Log.Logger.Debug($"py cal =  [{x}]  ");
 

    }

4.测试效果,C#控制台输出结果

5.注意 python文件和C#可执行文件必须在同一个目录下才行

相关推荐
BK贝壳3 小时前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
2601_966949654 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
晨曦中的暮雨6 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪7 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
程序员清风7 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
淡海水8 小时前
07-02-源码-.NET Core GC分配路径
算法·unity·c#·.netcore·gc·1024程序员节
在世修行9 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
2601_962885729 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI9 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友