Python - IronPython的困境

Tho*_*zma 15 python excel vba ironpython python.net

我开始学习Python了,现在我非常喜欢它.但是,如果你能为我回答一些问题,这些问题让我感到困扰,我找不到任何明确的答案:

  1. 在语言兼容性方面,Python的C实现(来自python.org的主要版本)和IronPython之间的关系是什么?它是同一种语言,通过学习一门语言,能够顺利地交叉到另一种语言,还是Java到JavaScript?

  2. IronPython库的当前状态是什么?它落后于CPython库多少钱?我最感兴趣的是numpy/scipy和f2py.他们可以使用IronPython吗?

  3. 什么是从Python访问VB的最佳方式,另一种方式(将一些python库连接到Excel的VBA,确切地说)?

Ree*_*sey 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相同的库直接自动化它.


Ale*_*lli 11

在语言兼容性方面,Python的C实现(来自python.org的主要版本)和IronPython之间的关系是什么?它是同一种语言,通过学习一门语言,能够顺利地交叉到另一种语言,还是Java到JavaScript?

相同的语言(目前为2.5级 - IronPython不是2.6级AFAIK).

IronPython库的当前状态是什么?它落后于CPython库多少钱?我最感兴趣的是numpy/scipy和f2py.他们可以使用IronPython吗?

标准库在今天的IronPython中处于一个很好的状态,巨大的第三方扩展就像你提到的那样远. 由于Ironcladnumpy开始变得可行,但不是来自IronPython的生产级别(由0.5版本号和&c 见证). 是庞大的,庞大的,充满了C编码和Fortran编码的扩展:我没有第一手经验,但我怀疑不到一半甚至会运行,更不用说运行完美,除了CPython之外的任何实现.numpyironcladscipy

什么是从Python访问VB的最佳方式,另一种方式(将一些python库连接到Excel的VBA,确切地说)?

IronPython应该通过.NET方法使其变得更容易,但CPython在win32all中通过COM实现并不是那么容易.

最后但并非最不重要的是,通过各种方式查看IronPython在行动中的书- 正如我每次推荐它时所说的那样,我有偏见(因为它曾经是一位科技评论家和与一位作家的友谊),但我认为这是客观上是.NET开发人员最好的Python介绍,同时也是Python for Pythonistas的最佳介绍.

如果你需要的是scipy(WOW,但是这是一些 "文艺复兴人"的计算科学家- !),CPython的今天真的是唯一的选择.我确定其他大型扩展(PyQt,比方说,或Mayavi)处于类似的状态.然而,为了深入集成到今天的Windows,我认为IronPython可能有优势.对于通用用途,CPython可能更好(特别是由于2.6中的许多新功能),除非你真的热衷于在单个进程中使用多个内核,在这种情况下IronPython(GIL-更少)可能再次证明是有利的.

无论是某种方式(甚至是JVM上的JVM,还是通过PyPy在特殊环境中),Python无疑是一种非常棒的语言,无论您为给定的应用程序选择什么实现! - 请注意,您不需要坚持使用使用ONE实现(尽管您应该选择一个VERSION - 2.5以获得与IronPython,Jython,Google App Engine等的最大兼容性; 2.6如果您不关心任何部署选项,除了"CPython在我自己的机器上或虚拟控制";-).


Ned*_*der 1

1)CPython和IronPython实现的语言是相同的,或者最多相差一两个版本。这与 Java 和 Javascript 的情况完全不同,这两种完全不同的语言由于一些愚蠢的营销决策而被赋予了相似的名称。

2)必须仔细评估用 C 实现的第三方库(例如 numpy)。IronPython有一个执行C扩展的工具(我忘了名字),但是有很多陷阱,所以你需要咨询每个库的维护者

3)我不知道。