Ste*_*ger 5 .net c# python python-bindings
当你想从 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# 程序集,那么最好的选择实际上是Python 端的pywin32的 win32com 模块和 .NET 端的 COM Interop。它允许您将 C# 对象公开为 COM 类,并在源级别添加一些属性,并轻松将它们作为对象(包含事件和所有内容)导入到 Python 中。通过这种方式,我在整合两个平台方面取得了很大的成功。
| 归档时间: |
|
| 查看次数: |
4232 次 |
| 最近记录: |