今天總結一下python與c#的交互模塊pythonnet,其實微軟也是有相應的解釋器的,就是Ironpython,可是畢竟Ironpython還有很多東西沒有從python那邊繼承過來,所以有時候用起來並不是那么爽。但是好在強大的社區總會給我們驚喜,pythonnet就是其中一個讓我驚喜的模塊,它可以平滑的和C#進行交互。但是網上這方面的資料還是太少了,不過最終還是折騰出來了。下面就上代碼吧。
# coding=utf-8 # clr是公共運行時環境,這個模塊是與C#交互的核心 import clr import sys # 導入clr時這個模塊最好也一起導入,這樣就可以用AddReference方法 import System sys.path.append(r'd:\dll') # 加載c#dll文件路徑 clr.FindAssembly('ClassLibrary5.dll') # 加載c#dll文件 from ClassLibrary5.aaaaa import * # 導入命名空間 a = clr.AddReference('ClassLibrary5') # 實例化C#類庫,這樣可以調用,比如這個類庫的來源Location c1 = bbbbb() print a.Location c1.a() print dir(System)
代碼注釋的比較清楚了,有幾點需要注意的地方,加載c#dll文件時,必須用
clr.FindAssembly方法而不是clr.ADDReference方法,而且導入clr模塊時,最好也把System模塊導入,原因注釋里已經說了,最后注意一點就是一定要把C#的命名空間當做模塊導入進來。以上就是pythonnet的大概用法。其他的用法還需要在以后的使用過程中好好研究一下!