如何将python绑定添加到C#?
当您想从python调用C时,可以编写如下模块: 现在,我有一个问题: 我想用C#编写一个在Python中使用的模块 如何让C#与本机Python交互?如何将python绑定添加到C#?,c#,.net,python,python-bindings,C#,.net,Python,Python Bindings,当您想从python调用C时,可以编写如下模块: 现在,我有一个问题: 我想用C#编写一个在Python中使用的模块 如何让C#与本机Python交互? (注:我对Python .NET或IrPython不感兴趣)。 < P>我知道你可能不喜欢这个答案,但老实说:用C++编写,使用Boosi::Python或直接在Cython中。 使用C#编写扩展是可能的,但您必须转换Python使用的数据结构,导入大量Python C API,在托管代码和非托管代码之间来回封送所有内容,在Python和C#
(注:我对Python .NET或IrPython不感兴趣)。 < P>我知道你可能不喜欢这个答案,但老实说:用C++编写,使用Boosi::Python或直接在Cython中。 使用C#编写扩展是可能的,但您必须转换Python使用的数据结构,导入大量Python C API,在托管代码和非托管代码之间来回封送所有内容,在Python和C#的垃圾收集器之间映射对象生命周期等,这很可能不值得 您还将导致对.NET framework的依赖,松散的平台独立性(甚至可能使用Mono),但总体上没有什么好处
如果您想在CPython中使用C#程序集,最好的选择实际上是Python端的win32com模块,以及.NET端的COM互操作。它允许您将C#对象公开为COM类,并在源代码级别添加一些属性,然后轻松地将它们作为对象、事件和所有内容导入Python。我在这两个平台上都有了很大的成功。只是出于好奇,因为IrPython和Python .NET都似乎符合你所说的描述,为什么你对它们不感兴趣?使用托管C++,那么很容易从C++ Python绑定调用你的.NET代码(C ^)。但是,您可能仍然需要考虑“固定”对象,以防止它们在被另一方使用时被垃圾收集。