Python.NET支持Python与.NET双向互调:Python可调用.NET类型,.NET也能嵌入Python解释器;需匹配Python 3.8–3.11与.NET 6+或Framework 4.7.2+,注意初始化、类型转换及线程安全。

用 Python.NET,.NET 项目就能直接调用 Python 代码,反过来 Python 也能加载 .NET 程序集——关键在于正确安装、初始化和类型转换。
安装与环境准备
Python.NET 不支持所有 Python 版本和 .NET 运行时组合,务必匹配清楚:
- 推荐使用 Python 3.8–3.11(64位),对应 .NET 6 / .NET 7 / .NET 8(或 .NET Framework 4.7.2+)
- Windows 上 pip 安装最简单:pip install pythonnet
- Linux/macOS 需先装 Mono 或 .NET SDK,并设置 PYTHONNET_PYDLL_PATH 指向 libpython 和 libmono
- 若用 .NET 6+,确保项目启用 UseWpf 或 UseWindowsForms(如需 GUI 互操作)
在 Python 中调用 .NET 类型
这是最常用场景:从 Python 脚本中创建 C# 对象、调用方法、处理事件。
- 先导入并初始化:import clr; clr.AddReference("System"); from System import String, DateTime
- 加载自定义程序集:clr.AddReference(r"C:\path\to\MyLibrary.dll"),然后 from MyNamespace import MyClass
- 注意类型转换:Python 字符串自动转为 System.String,但 list/dict 需手动转为 System.Collections.Generic.List[T] 等
- 调用泛型类要写全名,例如:List_string = clr.GetClrType(System.Collections.Generic.List[String])
在 .NET 中嵌入 Python 解释器
适合需要在 C# 应用里执行动态脚本、热重载逻辑或集成 AI 模型的场景。
标签: linux python windows mac ai macos win rest api 常见问题 c# cos .
还木有评论哦,快来抢沙发吧~