精華區beta Python 關於我們 聯絡資訊
這篇文章,翻譯來自於 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
Tiberius:讚! 10/12 13:27
Lucemia:太帥啦! 10/12 13:33
PsMonkey:囧... 不知道發生什麼事情,但是覺得很猛... Orz 10/12 20:15
Killertcell:我打不開問題回報的網頁 10/12 20:53
yoco315:阿 結尾那個 ) 要拿掉 XD 10/12 22:17