当前位置:  开发笔记 > 编程语言 > 正文

你是如何使用IronPython的?

如何解决《你是如何使用IronPython的?》经验,为你挑选了4个好方法。

我很想喝一些现代动态语言koolaid,所以我相信Michael Foord的博客和播客上的所有内容,我已经买了他的书(并阅读了一些内容),并且我添加了一个嵌入式IPy运行时大概现有的应用程序大约一年前(虽然这是为其他人,我自己并没有真正使用它).

现在我需要做一些相当简单的代码生成工作,我将在一些.net对象(自定义,C#-authored对象)上调用几个方法,创建一些字符串,编写一些文件等.

尝试这种经历让我觉得这个小男孩觉得他是唯一能看到皇帝没穿衣服的人.如果你正在使用IronPython,我真的很感激你知道如何处理它的以下几个方面:

代码编辑 - 您是否在没有 Intellisense的情况下使用.NET框架?

重构 - 我知道'重构'是关于解决与语言相关的繁忙工作,所以如果Python足够轻量级,那么我们就不需要了,但重命名这样的东西在我看来对迭代开发质量代码至关重要,无论语言.

瘫痪的启动时间 - 解释语言应该是好的事情之一是缺乏编译时间导致快速交互式开发.不幸的是,我可以编译一个C#应用程序并启动它比IPy启动更快.

交互式黑客攻击 - IPy控制台/ repl应该对此有好处,但是我还没有找到一种很好的方法来获取交互式到达的代码并将其保存到文件中 - 从控制台剪切和粘贴是公平的悲惨.并且控制台似乎保留了对您导入的.NET程序集的引用,因此如果您正在处理C#内容,则必须退出并重新启动它.在像LinqPad这样的东西上攻击C#似乎是一种更快更容易尝试的方法(并且具有适当的Intellisense).你使用控制台吗?

调试 - 这里的故事是什么?我知道IPy团队中的某个人正在开发一个命令行业余爱好项目,但我只想说我不会立即被命令行调试器所吸引.我真的不需要来自小Python脚本的调试器,但是如果我将IPy用于脚本单元测试,我会这样做.

单元测试 - 我可以看到动态语言对此很有用,但是有任何IDE测试运行器集成(如Resharper等).Foord书中有一章关于这一点,我承认我还没有正确阅读,但它确实似乎涉及从命令提示符驱动一个控制台模式测试运行器,这感觉是使用后的一大步像TestDriven.net或Resharper这样的集成测试运行器.

我真的很想相信这些东西,所以我仍然在假设我错过了一些东西.我真的想知道其他人是如何处理IPy的,特别是如果他们这样做的方式并不像我们只是失去了15年的工具开发价值.

更新:(2010年7月)这个问题看起来很陈旧,现在有两个官方的IronPython工具用于VS和PyCharm,这两个工具都显示了许多承诺,当我写这个时它们都没有.感谢所有回答的人.对于那些没有使用自动重构工具而感到高兴的人,我是否可以建议您永远不要使用具有良好自动重构功能的IDE.在你拥有之后,你会想知道为什么你认为你对find-replace感到高兴,而你再也不想没有它了.如果不出意外,立即重命名标识符而不必担心替换错误的文本位的能力会改变您命名内容的整个方法.



1> Sake..:
do you use the .NET framework without Intellisense?

是.我只使用emacs和IronPython."M- /"对我来说已经足够了.当我真正需要有关SDK的信息时,我偶尔会切换到Reflector和MSDN.

Refactoring

当你说"重构"时,你的意思是"自动重构".编码时我做了很多重构.一些自动化可能会更好.但我对手工重构很好.它还迫使我加入更多测试.我从来没有广泛使用任何具有重构功能的IDE,也许这就是为什么我没有受苦.简单的搜索和替换对我来说很好.

Crippling startup time

是的,这是我的主要痛苦,尽管我正在使用4G Ram的3GHz四核处理器,但运行359个测试用例需要50秒.一半的时间(25s)是启动时间!! 在导入大型模块时,IronPython似乎执行了一些非常繁重的处理任务.我现在正计划将我的测试分成几部分来缓解这种痛苦.

Interactive hacking - Do you use the console?

我偶尔使用控制台,当我想尝试一些特殊的想法时.没有问题.然而,大部分时间我都把我的想法写进了单元测试中.

Debugging - what's the story here?

如果调试意味着断点和变量检查.我只使用print语句来表示那些东西.我正在努力的应用程序即将生存并保持至少十年.为了处理有缺陷的代码,我只打赌3件事:可理解代码,单元测试和扩展日志.

Unit testing

我从来没有接近你提到的任何工具.只需使用unittest.TextTestRunner.除了可怕的创业时间,我没有任何其他抱怨.

**更新**

我刚刚升级到IPy 2.6B1并取得了惊人的成果.启动时间从25秒减少到6秒,我的整体测试时间从50秒减少到16秒!

惊人 !



2> Patrick Wolf..:

如何使用Visual Studio 2010的IronPython工具?

IronPython工具提供Python代码编辑器,基于文件的项目系统和交互式Python解释器,所有这些都在Visual Studio 2010中,并且都是免​​费的. http://ironpython.net/tools/

我认为这个加载项可以涵盖你的大部分要点.

希望能帮助到你,

帕特里克



3> CyberFonic..:

IronPython是一个很好的解决方案,但我会继续回到CPython for Windows.为什么?

根据我的经验,Windows下的CPython,Mac OS/X和*NIX几乎是一样的.我可以在每个环境中使用几乎所有的"电池".我经常在Linux上开发应用程序并发送到Windows服务器.抛开线程的几个问题,我没有任何问题.

另一方面,IronPython是围绕.Net Framework的Python语言包装器.我发现使用它比使用C#更好,但这就是全部.如果没有大量的重做,我的CPython程序就无法运行.IronPython的电池不同.

如果您的目标是在.Net上提高效率,那么IPy可能就好了.但是,如果你正在寻求便携式Python技能,那么我会避免它.



4> Caglar Toklu..:

我正在使用PyDev编写IronPython代码.我试图尽可能地分离.NET特定的代码,以便我可以从PyDev中运行(Iron)Python脚本.感谢PyDev,我可以使用Pylint,可以在http://www.logilab.org/857找到.PyDev的最新版本甚至能够根据文件或项目配置解释器.因此,我可以轻松地将解释器从IronPython切换到CPython,反之亦然.通过这种方式,我可以看到我的代码在Python实现之间是可移植的.(虽然我没有使用,但Jython 2.5 RC也可以在PyDev中使用.)

有了Python和IronPython 2.5兼容代码,我可以在PyDev中使用重构,请参阅http://pydev.sourceforge.net/refactoring.html.

如果它支持IronPython 2.x,IronPython Studio将是一个不错的选择,但遗憾的是,它没有.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有