ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#.NET与托管Python(CPython)的互操作性->有问题吗?

2019-12-01 12:16:37  阅读:520  来源: 互联网

标签:interop ironpython python c net


我正在设计应用程序.核心应该用C#编写,但我也想使用一些已经完成的CPython模块(非托管).

因此,我对互操作性感兴趣(从C#调用CPython方法,从CPython调用C#).如果有问题,因为C#在.NET运行时(托管)内运行,而CPython直接在非托管范围内运行.

我已经通过Google调查了此问题,并提出了以下解决方案:

>通过DLR使用IronPython,“ CPython扩展名”或“ IronClad”并从IronPython调用CPython模块,反之亦然->这些模块是托管的还是非托管的?如果我想使用CPython中的C#类和方法,是否有任何问题?
>使用“ Python for .NET”->与上述相同的问题.

您认为哪种方法更好?还是您有其他解决方案?

最后一个但也许是最重要的问题,我是否正确理解了上述要点,还是弄糟了?

提前谢谢了 !!

解决方法:

我认为您误解了Python.这是一种解释型语言.您只需提供文本源文件,解释器将执行它们.

Python语言和CPython,IronPython,Jython,PyPy实现之间是有区别的.他们每个人都试图尽可能准确地实现Python语言,同时还添加了特定于实现的功能.就像C#编译器是用C编写的.

例如,任何(纯)Python文件都可以由IronPython解释器执行.但是,如果您知道将要使用IronPython,则可以使用特殊的IronPython功能,这些功能使您可以进入.NET库.

现在,大多数Python不使用任何特定于实现的功能,因此您使用什么来运行它都没有关系.不过,有些Python可以.

1好吧,它已经被编译成.pyc文件了……但是“编译”实际上并不是一个明确定义的术语.

为什么这对您很重要?好了,您有一堆想要与.NET框架一起使用的Python源代码.如果该代码不使用任何特定于CPython的功能(例如使用C扩展模块),则可以在IronPython中运行它.

标签:interop,ironpython,python,c,net
来源: https://codeday.me/bug/20191201/2080900.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有