IronPython是100%纯Python变种吗?

时间:2010-10-30 14:49:59

标签: python wxpython ironpython

我刚从Python的网站下载了原始的Python解释器。我只想学习这种语言,但首先,我想编写由任何RDBMS驱动的基于Windows的独立应用程序。我想像任何典型的Windows设置一样捆绑它。

我搜索了SO上的旧帖子,发现有人建议使用wxPython和py2exe。除了少数建议使用IronPython,因为它由.NET提供支持。

我想知道IronPython是Python的纯变种还是修改过的变体。其次,Python的实际用途是什么?它是用于PHP的东西还是像C#(你可以编写基于Windows的应用程序或Web。)。

4 个答案:

答案 0 :(得分:6)

IronPython不是Python的变种,而是Python。它是基于.NET框架的Python语言的实现。所以,是的,它是纯Python。

IronPython可以追溯到CPython(你可能习惯使用的实现)2.6,因此在Python 2.7或3.x中看到的一些功能/更改将不会出现在IronPython中。此外,标准库有点不同(但您丢失的内容将被.NET提供的所有内容所取代)。

IronPython的主要应用程序是编写用C#等编写的.NET应用程序的脚本,但它也可以单独使用。 IronPython还可用于使用SilverLight框架编写Web应用程序。

如果您需要访问.NET功能,请使用IronPython。如果您只是尝试制作Windows可执行文件,请使用py2exe。

更新

对于编写基本的RDBMS应用程序,只需使用CPython(原始Python),它就更具可扩展性和更快。然后,您可以使用许多工具使其在Windows PC上独立运行。但是现在,只是担心学习Python(如果你选择切换,这些技能将主要转移到IronPython)并编写你的应用程序。

答案 1 :(得分:1)

IronPython是一个用C#编写的独立Python实现,与原始实现相反,通常被称为CPython,因为它被写入(毫不奇怪)C。

Python是多用途的 - 您可以使用它来编写Web应用程序(通常使用DjangoPylons等框架),GUI应用程序(如您所述),命令行工具和嵌入在用另一种语言编写的应用程序中的脚本语言(例如,3D建模工具Blender可以使用Python编写脚本)。

答案 2 :(得分:1)

“纯Python”是什么意思?如果您正在谈论在Python 中实现,就像模块可能是纯python一样,那么没有,也没有Python实现。如果你的意思是“与cPython兼容”那么是的,编写给cPython的代码将在IronPython中运行,但有一些注意事项。可能最重要的一个是库不同,例如,取决于ctypesTkinter的代码将不起作用。另一个区别是IronPython略微落后于cPython。本文的最新版本是2.6.1,Alpha版本也支持2.7种语言功能。

你真的需要什么?如果你想学习用python编程,并且想要为windows生成代码,你可以使用IronPython,但你也可以使用cPython和py2exe;两者在这方面同样有效,只有库中的差异。

答案 3 :(得分:1)

IronPython是使用C#的Python实现。这就像Jython使用Java实现Python一样。您可能需要注意,IronPython和Jython在开发过程中总是会落后一点。但是,您确实可以获得一些标准Python库中没有的库。在IronPython中,您将能够访问某些.NET内容,例如System.Drawings等,但是通过使用这些非标准库,将代码移植到其他平台将更加困难。例如,您必须安装mono来运行在Linux上运行IronPython的应用程序(在Windows上,您将需要.NET Framework)