[教學] 把 IronPython 整合到 Visual Studio
這篇文章,翻譯來自於 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
推
10/12 13:27, , 1F
10/12 13:27, 1F
推
10/12 13:33, , 2F
10/12 13:33, 2F
推
10/12 20:15, , 3F
10/12 20:15, 3F
推
10/12 20:53, , 4F
10/12 20:53, 4F
→
10/12 22:17, , 5F
10/12 22:17, 5F
→
06/07 08:37, , 6F
06/07 08:37, 6F
→
06/07 08:37, , 7F
06/07 08:37, 7F
→
06/07 08:38, , 8F
06/07 08:38, 8F
Python 近期熱門文章
PTT數位生活區 即時熱門文章