gpt4 book ai didi

c# - 如何将 python 绑定(bind)添加到 C#?

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:40 25 4
gpt4 key购买 nike

当你想从 python 中调用 C 时,你可以这样写一个模块:

http://docs.python.org/extending/extending.html

现在,我有一个问题:

我想用 C# 编写一个在 Python 中使用的模块。

如何让 C# 与原生 Python 交互?
(注意:我对 Python.NET 或 IronPython 不感兴趣)。

最佳答案

我知道您可能不会喜欢这个答案,但老实说:用 C++ 编写,使用 boost::python 或直接在 Cython 中编写。

可以使用 C# 编写扩展,但您必须转换 Python 使用的数据结构,导入大量 Python C API,在托管代码和非托管代码之间来回编码所有内容,在 Python 和 C# 的垃圾收集器等之间映射对象生命周期,这很可能是不值得的。

您还会导致对 .NET 框架的依赖、松散的平台独立性(甚至可能使用 Mono),而通常提供的好处很少。

如果您想在 CPython 中使用 C# 程序集,最好的选择实际上是 pywin32 Python 端的 win32com 模块和 .NET 端的 COM Interop。它允许您将 C# 对象公开为 COM 类,并在源代码级别添加一些属性,并轻松地将它们作为对象、事件和所有内容导入 Python。通过这种方式,我成功地集成了两个平台。

关于c# - 如何将 python 绑定(bind)添加到 C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4065352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com