2012-04-04 96 views
4

我在桌上有一個USB轉單線適配器,我想自動使用它。我用它來編程dallaskeys,它是通過單線程編程和讀取的徽章。在pythonnet中使用OWdotNET.dll(python for NET)

有一個託管的DLL提供了一個API,我喜歡python,所以我想用「python for .NET」又名pythonnet來使用這個第三方管理的DLL。

我的腳本如下所示,並運行沒有問題:

import os 
import clr 
from clr import System 

oneWireLibrary = clr.FindAssembly("OWdotNET") 
System.Reflection.Assembly.LoadFile(os.path.abspath(oneWireLibrary)) 

,但我無法弄清楚如何使用庫中的類。我嘗試過clr.OWdotNET 但這給了我一個屬性錯誤。 我也試過clr.AddReference("OWdotNET")

鏈接:

http://files.maxim-ic.com/sia_bu/softdev/owdocs_400beta2/Docs/OW.NET/OW.NET_Primer.html

http://pythonnet.github.io/

回答

2

我從IronPython中的觀點回答,但我相信這是在Python的.NET相似。

clr.AddReference調用可以被認爲與將.NET程序集路徑添加到sys.path中類似,但您仍然需要將運行時的相關信息告知sys.path,但是您仍然需要將名稱空間導入當前作用域。

import clr 
clr.AddReference("OWdotNET") 
from com.dalsemi.onewire import OneWireAccessProvider 

adapter = OneWireAccessProvider.getDefaultAdapter()