我开始学习Python,现在我非常喜欢它。但是,如果你能为我回答一些问题,这些问题让我感到困扰,我找不到任何明确的答案:
在语言兼容性方面,Python的C实现(来自python.org的主要版本)和IronPython之间的关系是什么?它是同一种语言,通过学习一门语言,能够顺利地交叉到另一种语言,还是Java到JavaScript?
IronPython库的当前状态是什么?它落后于CPython库多少钱?我最感兴趣的是numpy / scipy和f2py。它们可用于IronPython吗?
从Python访问VB的最佳方式是什么,以及其他方式(将某些python库连接到Excel的VBA,确切地说)?
答案 0 :(得分:18)
1)IronPython和CPython共享几乎相同的语言语法。他们之间差别很小。过渡应该是微不足道的。
2)IronPython中的库与CPython非常不同。 Python 库有点落后 - 相当一部分CPython可访问的库在IronPython下无法正常工作(目前)。但是,IronPython可以直接访问整个.NET Framework,这意味着它拥有本地可访问的最广泛的库之一,因此在很多方面,它远远领先于CPython。一些numpy / scipy库在IronPython中不起作用,但由于.NET实现,因为perf,所以没有必要使用某些功能。特征是不同的。
3)如果您是从VBA进行操作,使用IronPython访问Excel VBA会更容易。如果您正在尝试自动化excel,IronPython仍然更容易,因为您可以访问Execl Primary Interop Assemblies,并且可以使用与C#和VB.NET相同的库直接自动化它。
答案 1 :(得分:11)
之间有什么关系 Python的C实现(主要 来自python.org的版本)和 IronPython,语言方面 兼容性?它是一样的吗? 语言,我学习一个, 将能够顺利地跨越 另一个,还是Java到Java?
相同语言(目前为2.5级 - IronPython还不是2.6级AFAIK)。
目前的状态是什么 IronPython的图书馆?多少钱 它落后于CPython图书馆?我 最感兴趣的是numpy / scipy和 f2py。它们是否适用于IronPython ?
标准库在今天的IronPython中处于一种很好的状态,巨大的第三方扩展就像你提到的那样。由于ironclad,numpy
开始获得可行,但生产级别不是numpy
来自IronPython(见{x的0.5版本号) {1}},& c)。 ironclad
是巨大的,庞大的,充满了C编码和Fortran编码的扩展:我没有第一手经验但我怀疑不到一半甚至会运行,更不用说运行完美,除了CPython之外的任何实现。
访问的最佳方式是什么 来自Python的VB和另一种方式 (将一些python库连接到 确切地说是Excel的VBA?
IronPython应该通过.NET方法使其更容易,但CPython在win32all中通过COM实现并不是那么远。
最后但并非最不重要的是,一定要查看书籍IronPython in Action - 就像我每次推荐它时所说的那样,我有偏见(因为它曾经是一位科技评论家,并且与一位作家有着友谊)但我认为它是客户端Python开发人员的最佳介绍,同时也是.NET for Pythonistas的最佳介绍。
如果你需要所有scipy
(WOW,但那是一些“Renaissance Man”计算科学家! - ),CPython真的是今天唯一真正的选择。我确定其他大型扩展(PyQt,比方说,或Mayavi)处于类似的状态。然而,为了深入集成到今天的Windows,我认为IronPython可能有优势。对于通用用途,CPython可能更好(特别是由于2.6中的许多新功能),除非你真的热衷于在单个进程中使用多个核心,其中案例IronPython(无GIL)可能再次证明是有利的。
这种或那种方式(甚至通过Jython在JVM上,或通过PyPy在特殊环境中)Python无疑是一种非常棒的语言,无论您为给定的应用程序选择什么实现! - 请注意,您不需要需要坚持使用一个实现(尽管你应该选择一个VERSION - 2.5以最大限度地兼容IronPython,Jython,Google App Engine等; 2.6如果你不关心任何部署选项,除了“CPython在我的机器下拥有唯一或虚拟控制“; - )。
答案 2 :(得分:2)
答案 3 :(得分:1)
1)CPython和IronPython实现的语言是相同的,或者至多是相隔两个版本。这与Java和Javascript的情况完全不同,Java和Javascript是两种完全不同的语言,它们通过一些骨头营销决策给出相似的名称。
2)必须仔细评估用C实现的第三方库(例如numpy)。 IronPython有一个执行C扩展的工具(我忘了名字),但是有很多陷阱,所以你需要检查每个库的维护者
3)我不知道。
答案 4 :(得分:0)