`

IronPython的第二块鳞片

阅读更多

        今天花了两个小时的时间把users-ironpython.com Archives中8月份的Mail仔细的看了一遍,整体的感觉就是IronPython这条小蟒蛇真的太幼小了,确实需要一段很长的时间才能成长起来。当然,我们可以从它的主人Jim的Mail中体会到他抚养这条小蟒蛇所承受的压力以及他的决心。
        8月份的Mail长达3900多行,在这些Mail当中,有提问的,有but report,有对IronPython开发的建议,也有对IronPython存在意义的怀疑。现将这些Mail中的一些精华部分列举如下,当做我摸索到的IronPython第二块鳞片吧:
        1、首先一个重要的问题就是跟CPython的兼容性问题,由于IronPython使用C#实现的,那么里面使用到的自定义的module,如"Equals"和"GetHashCode",是否需要呈现给开发人员呢?同时,象list这种原来内建的对象也拥有了更多的方法,如标准的list只能使用append方法去增加list中的元素,但是IronPython增加了C#下面实现的方法:Add(object)。有开发人员针对这个问题提出了自己的疑问,而Jim所给的回答就是,因为IronPython是在一个全新的平台去实现Python,与CPython完全保持一致是不可能,即使CPython本身版本的变迁也会带来变化;
        2、IronPython现在存在的一些比较严重的Bug,一个就是在上一篇blog中提到的第四点,关于使用__main__方法抛出的<eof>异常;一个是关于类成员访问的问题,如以下代码所示:

class Buggy: 
   class_member 
= 'find bug' 
   def printMember(self):
       print Buggy.class_member

= Buggy()
t.printMember()  

        这段代码存为一个.py文件,然后使用IronPythonConsole来执行,结果会抛出Unhandled Exception: IronPython.Objects.PythonAttributeError,而这段代码在CPython下是运行OK的。
        3、很多热心的开发人员都提出了需要一个subversion repository来存放IronPython的代码,大家都可以为IronPython的开发作出一份努力,同时也可以得到IronPython最新的代码。譬如上面提出的两个bug,已经有程序员找出了修改的办法,但是就是苦于没有地方提交他们的代码。而Jim给出的回应是,由于他加入了微软,为了新的工作还需要搬家,他也很诚恳的请求大家耐心等他一段时间,因为他需要做个计划。同时,他也回应了在开发上的一些怀疑:I have great confidence the resulting plan will be one that will make the developer community happy.  If the plan doesn't work for developers,then it just doesn't make sense;
        4、一位热心的开发人员开发出了一个将Visual Studio中开发的基于C#的Form代码转化为IronPython代码的工具,我还没有来得及去尝试,但是看回复的Mail,应该做得不错,有兴趣的朋友可以下载来试一下;
        5、当使用IronPythonConsole命令行的方式去执行一个.py文件的时候,会在IronPythonConsole所在的目录bin下面产生一个__main__.exe文件,但是这样产生可执行文件的方式并非是在IronPython.com首页上提到的static compilation。事实上在0.6版本中并没有真正实现这个特性。
        总结就到这里了,有兴趣的朋友,可以访问IronPython的邮件列表,以获得更详细的信息。 

分享到:
评论

相关推荐

    IronPython安装python第三方库的必须工具setuptools-py2.7.egg

    总之,setuptools-py2.7.egg是针对IronPython的特殊解决方案,它使得在.NET框架内管理Python第三方库成为可能。通过正确安装和使用setuptools,开发者可以在IronPython环境中充分利用Python生态系统的丰富资源,提升...

    IronPython.2.7.8

    这个版本,IronPython.2.7.8,是基于Python 2.7版本的,因此它保留了Python 2.x系列的语法和特性,同时利用.NET的优势提供了与C#、VB.NET等其他.NET语言的互操作性。 在Visual Studio 2013中使用IronPython,开发者...

    在.Net6中调用IronPython实现动态执行脚本

    在.NET 6中调用IronPython来实现动态执行脚本是一项强大的功能,它允许程序员在运行时编写和执行Python代码,极大地增强了应用的灵活性。IronPython是一个开源的Python实现,它能够无缝集成到.NET环境中,使得.NET...

    Professional IronPython.pdf

    - **第2章:理解IronPython基础知识** 详细介绍IronPython的基本语法,包括变量、数据类型、控制结构等内容,为后续学习打下坚实基础。 - **第3章:实现结构化语言元素** 探讨如何在IronPython中使用结构化的...

    IronPython-2.7.5.zip

    9. **库支持**:IronPython能够导入和使用许多Python第三方库,尽管可能需要一些适配工作,特别是那些依赖于C扩展的库。 10. **工具集成**:IronPython可以很好地与Visual Studio等.NET开发工具集成,提供调试、...

    微软IronPython源码

    2. **JIT编译**:IronPython利用.NET的Just-In-Time (JIT) 编译器,将Python代码转换为机器码,提高了执行效率,与传统的解释执行相比,性能有所提升。 3. **动态类型系统**:Python的动态类型系统在IronPython中...

    IronPython in Action.pdf

    《IronPython in Action》是一本专门探讨IronPython技术的权威著作。IronPython是Python编程语言的一个实现,它允许开发者在.NET Framework和Mono平台上编写Python代码,并能无缝集成.NET类库。这本书深入浅出地介绍...

    IronPython-1.1.1

    2. 标准库:与CPython(标准的Python实现)类似,IronPython也包含了一套标准库,以便开发者可以使用Python的常见模块,如os、sys、math等。 3. .NET互操作性:一套接口和机制,使Python代码能够无缝地调用.NET组件...

    IronPython in Action 无水印pdf版

    IronPython in Action 无水印pdf版。 IronPython in Action 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络 IronPython Action

    IronPython-2.7.7.msi 金蝶云 调试python脚本环境搭建。

    标题中的"IronPython-2.7.7.msi"指的是IronPython的一个版本,这是一个开源的Python实现,可以在.NET Framework上运行。它允许开发者使用Python语言编写应用程序,同时利用.NET平台的强大功能。金蝶云,另一方面,是...

    IronPython-2.7.11.rar

    7. **版本兼容性**:IronPython 2.7.11是对Python 2.7版本的实现,这个版本是Python 2系列的最后一个主要版本,因此这个版本的IronPython提供了对大量现有Python 2代码的支持。 压缩包内的"IronPython.2.7.11.zip...

    IronPython in Action 2012.pdf

    2. **IronPython 入门** - 安装与配置 - 第一个 IronPython 程序 - 基本语法与数据类型 3. **.NET 对象与 IronPython 的交互** - .NET Framework 简介 - IronPython 如何操作 .NET 对象 - 面向对象编程在 Iron...

    IronPython.7z

    - **IronPython 3.4.0a1**:这是一个测试版,对应Python 3.4的第一个alpha版本。Python 3.x引入了许多重大改变,包括语法更新和向后不兼容的改进。这个版本的IronPython让开发者可以尝试Python 3的新特性,但可能...

    IronPython和C#交互

    标题中的"IronPython和C#交互"涉及到的是两种不同编程语言——IronPython(一种Python的实现,能够在.NET框架上运行)和C#之间的协同工作。 IronPython的优势在于它允许Python开发者利用.NET平台的强大功能,而C#是...

    IronPython2.0最新版本以及IDE等源码

    【IronPython2.0最新版本】是Python编程语言的一个实现,它允许开发者在.NET Framework上运行Python代码。这个实现由Microsoft开发,旨在提供一个与标准CPython解释器兼容的环境,同时利用.NET平台的高性能和丰富的...

    IronPython-2.7.7-win.zip

    IronPython是Python编程语言的一个实现,它允许开发者在.NET Framework和Mono平台上运行Python代码。这个压缩包"IronPython-2.7.7-win.zip"包含了IronPython的2.7.7版本,专为Windows操作系统设计。这个版本是在...

    IronPython.dll和Microsoft.Scripting.dll

    IronPython.dll和Microsoft.Scripting.dll是两个非常关键的组件,它们在.NET开发环境中扮演着重要角色,特别是对于那些希望在C#项目中利用Python语言功能的开发者来说。这两个DLL文件是IronPython库的核心组成部分,...

    IronPython各个支持平台对应的DLL资源

    2. **代码动态编译**:IronPython支持Python代码的动态编译,这意味着你可以编写Python代码并在运行时即时编译为.NET字节码,提高了开发效率和灵活性。这对于实验性编程、快速原型开发或构建动态系统非常有用。 3. ...

    IronPython IDE

    IronPython IDE是一款基于C#语言开发的集成开发环境(IDE),专为IronPython编程语言提供支持。IronPython是Python的一种实现,它运行在.NET Framework或Mono框架之上,能够充分利用.NET平台的强大功能。这款IDE旨在...

Global site tag (gtag.js) - Google Analytics