IronPython是100%纯Python变体吗?

IronPython是100%纯Python变体吗?,python,wxpython,ironpython,Python,Wxpython,Ironpython,我刚刚从Python的站点下载了原始的Python解释器。我只想学习这门语言,但首先,我想编写由任何RDBMS支持的基于Windows的独立应用程序。我想像任何典型的Windows安装一样捆绑它 我搜索了SO上的旧帖子,发现有人建议使用wxPython和py2exe。除了少数人建议的IronPython之外,因为它是由.NET支持的 我想知道IronPython是Python的纯变体还是经过修改的变体。其次,Python的实际用途是什么?它是用于PHP之类的东西还是C#(您可以编写基于Windo

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

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


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

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


Python是多用途的—您可以使用它编写web应用程序(通常使用诸如或之类的框架)、GUI应用程序(如您所述)、命令行工具,以及作为嵌入在用另一种语言编写的应用程序中的脚本语言(例如,可以使用Python编写3D建模工具的脚本)。

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

IronPython赶上了CPython(您可能已经习惯的实现)2.6,因此在Python2.7或3.x中看到的一些特性/更改将不会出现在IronPython中。另外,标准库也有点不同(但是你失去的东西被.NET提供的所有东西所取代)

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

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

更新 要编写基本的RDBMS应用程序,只需使用CPython(原始Python),它的可扩展性更强,速度更快。然后,您可以使用多种工具使其在Windows PC上独立运行。不过,现在,您只需担心学习Python(如果您选择切换,这些技能将主要传授给IronPython)和编写应用程序。

什么是“纯Python”呢?如果您谈论的是在Python中实现的模块可能是纯Python,那么没有,也没有Python实现。如果您的意思是“与cPython兼容”,那么是的,编写到cPython的代码将在IronPython中工作,并附带一些注意事项。最重要的一点可能是库是不同的,例如,依赖于
ctypes
Tkinter
的代码不起作用。另一个区别是IronPython比cPython落后一点。本文的最新版本是2.6.1,Alpha版本也支持2.7语言的一些功能


你真正需要什么?如果您想学习使用python编程,并且还想为windows生成代码,您可以使用IronPython,但也可以使用cPython和py2exe;这两种方法都可以很好地实现这一点,只是在库中有所不同。

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

了解我们所讨论的Python版本也很好。注意:IronPython在很多方面都有困难,例如Pylons和DjangoTrue,一般来说,IronPython指的是Python—选择最适合手头任务的实现是有意义的。我不明白IronPython在.NET支持下怎么可能是纯实现。@RPK:我假设“纯”的意思是它理解的语言是Python,而不是Boo、Cobra、,等等,它改变并扩展了Python的语法。@RPK:Python是一种语言,而不是一种实现。它可以在许多不同的环境下运行,无论是C(CPython)、Java虚拟机(Jython)还是.NET公共语言运行库(IronPython)。没有一个实现比其他实现更纯粹,它们都是从Python的公共语言规范派生出来的。为什么在编写基本RDBMS应用程序时使用CPython更好?只是好奇。。谢谢@AbeP:更多支持和更多模块。IronPython可以很好地与Microsoft RDBMS配合使用,Jython可以很好地与基于Java的RDBMS配合使用,但CPython(IMO)在最广泛的解决方案(如Oracle、MySQL、sqlite)中效果最好。对于初学者来说,这也是最好的起点。刚开始学习,但很快就会想用它编写一个专业的应用程序。我所说的“纯”是指原始Python库可能无法与IronPython一起使用。而且,如果我只是学习IronPython,我是否适合一份简单的Python工作?