作者yoco315 (眠月)
看板Python
标题[教学] 把 IronPython 整合到 Visual Studio
时间Fri Oct 12 13:22:50 2007
这篇文章,翻译来自於 Aaron Marten的 blog,文章标题是 A bit more on IronPython
http://blogs.msdn.com/aaronmar/archive/2006/02/16/a-bit-more-on-ironpython.aspx
我徵求 Aaron 的同意以後,翻译成中文,贴在这里,并且附上原出处,以下是全文。
这篇文章有时後会更新,所以大家可以去原址查看有没有更新。
==
要怎麽把 IronPython 整合到 Visual Studio 2005?
首先,你要去下载这个最新的 Visual Studio SDK(Version 4.0)
(
http://tinyurl.com/36c8rp),这边要注意的是,这个 IronPythonIntegration 的范
例,只能用在 Visual Studio 2005 (或是更新的版本)如果你的机器装的是 .Net 1.1
跟 Visual Studio 2003 的话,那就没办法用啦。
我要用什麽版本的 Visual Studio?我可以把他用在 Express 版本上吗?
很遗憾,不可以。Visual Studio Express 不支援扩充能力,这是 Express 版本的限制
,不是这个范例的问题。你需要标准版或是更高阶的版本才能使用这个范例。
另外,你也需要安装 Visual C++ 来编译这个范例(所以如果你的 Visual Studio 只有
装 VB 的话,那一样没办法安装这个范例)。目前所有的 Visual Studio 扩充专案都有
这个限制,因为我们需要 C++ 的 preprocessor 去编译这些范例里面的 CTC 档案。
(CTC 是用来描写整合到 Visual Studi 时 menu 的结构)
好啦,我已经下载好那些东西啦,那我现在要怎麽让IronPython在我的Visual Studio里
面可以动?
打开你的Visual Studio 2005(而且你的SDK以已经装在预设的位置),开启下面这个方
案(solution)"C:\Program Files\Visual Studio 2005
SDK\2007.02\VisualStudioIntegration\Samples\IronPythonIntegration"。接着很简单
,你只要按下 Ctrl+F5 去建置你的专案就可以了。建置完成以後,他会自动以「实验蜂
槽模式(Experimental hive)」开启一个 Visual Studio ,里面就有已经整合好的
IronPython 扩充功能。(另外一种开启实验模式的方法是以命令列执行 "devenv
/rootsuffix Exp")
这边注意一下阿,如果你直接按 F5(而不是 Ctrl+F5)执行的话,你的电脑可能会给你
一些 exception 或是 MDA(managed debugging assistant) 错误讯息,不过那都不重要
,你可以不用管他。
恩,我觉得我已经成功的建制并且执行了,阿现在勒?
那你现在可以用「建立新专案」功能,建立一个新的 IronPython 专案,就像是你建立一
个新的 C#/VB/J#/C++ 专案一样。我建议你一开始应该先开一个 console 专案玩一玩。
如果你开一个新档案,是用 .py 当作副档名结尾的话,你会发现 Visual Studio 很聪明
的会帮你加上 syntax coloring。
另外这个范例有一个很酷的小东西,就是一个叫做 IronPython Console Window 的小工
具视窗,你可以从「检视-其他视窗」来开启他。这个小工具视窗的功能就是一个互动式
的 IroonPython 环境,让你可以快速的测试你的语法。
关於这个小视窗,还有一件事情要附注一下,就是里面有个变数叫做 dte,有这个 dte
你可以透过 Macros IDE 自动化操作 Visual Studio(automate Visual Studio)
(
http://tinyurl.com/2ltwvu),也就是说:你可以用 IronPython 来写 VS 的
mini-macros,而不必再用 VB 啦!
为什麽我可以编译?我以前根本就不能编译任何的 IronPython 程式码阿?
在过去几个月里面,IronPython 团队加了一些编译器介面到 IronPython.dll 里面,所
以透过这个 .dll 我们可以编译 IronPython 程式码。有一个必须的认知是:这个编译器
编译出来的程式码,必须要仰赖这个 IronPython runtime 才能够执行,也就是说你需要
有这个 IronPython.dll 档案才可以。毕竟这是一个动态的语言,所以当你执行你的
IronPython 程式的话,每一行程式码都需要被重新检查型态跟评估其值。
这代表着,你在 IronPython 写的程式码,所产生的 MSIL 不会像是你在 C#/VB 所写的
那样。事实上,你应该没办法在其他语言完整的使用以 IronPython 开发出来的功能。
还有什麽特色阿?
一个「范例」就是一个「范例」,也就是说,这只是一个用来示范怎麽把 IronPython 整
合到 Visual Studio 2005 的「范例」,所以呢,很多功能并没有被实做出来,或是即使
实做出来了,也不太稳定。虽然如此,这个范例还是很有限度的支援了以下个功能:
MSBuild
Windows Forms Designer(可以让你建立视窗程式)
WebSite Projects
Web Application
Projects(
http://tinyurl.com/ysr8xh)
Intellisense(程式码自动完成的功能)
Demonstrates use of MPF feature
我有好几个 module(.py档案) 要彼此互动,那我要怎麽作?
很简单,把你的档案都放在一起就好了。比方说,我有一个主程式档叫做 program.py,
然後我有要用到 myModule.py,那我就把 myModule.py 放到跟 program.py 同一个目录
下,然後在我的 program.py 加入一行:
import myModule
这个范例里面包的是什麽版本的 IronPython?
Visual Studio 2005 SDK 里面放的是 IronPython1.1 的 pre-beta 版本。
有没有不用下载 Visual Studio2005 DSK 就可以用 Visual Studio 跑 IronPython 的方
法阿?
到目前为止,我们唯一释出这个 IronPython 整合范例的方法就是透过 VSSDK。
但是呢,IronPython 团队已经释出了一个 IronPython for ASP.NET
CTP(
http://tinyurl.com/2rr47e) 的东西,包含了这个范例的
部份功能。不一样的是,这个 ASP.NET CTP 只以 binary 的形式释出,然後他不需要
Visual Studio SDK。
好,我觉得我发现了 bug 耶…
如果你有任何困难,问题,或是建议,拜托请回报给我们
(
http://blogs.msdn.com/aaronmar/contact.aspx)!
--
To iterate is human, to recurse is divine.
递回只应天上有, 凡人该当用回圈. L. Peter Deutsch
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.78.40
1F:推 Tiberius:赞! 10/12 13:27
2F:推 Lucemia:太帅啦! 10/12 13:33
3F:推 PsMonkey:囧... 不知道发生什麽事情,但是觉得很猛... Orz 10/12 20:15
4F:推 Killertcell:我打不开问题回报的网页 10/12 20:53
5F:→ yoco315:阿 结尾那个 ) 要拿掉 XD 10/12 22:17
6F:→ yoco315:我的妈阿 回头看了一下自己以前的翻译 翻的有够烂 -_- 06/07 08:37
7F:→ yoco315:整篇都很像中文.. 靠腰烂死了 XD 06/07 08:37
8F:→ yoco315:很不像 orz 06/07 08:38