python - 在 pythonnet 中使用 OWdotNET.dll(.NET 的 python)

标签 python .net dll ironpython python.net

我 table 上有一个 USB 转单线适配器,我想自动使用它。我用它来编程 dallaskeys,这是通过单线编程和读取的徽章。

有一个提供 API 的托管 DLL,我喜欢 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/

最佳答案

我是从 IronPython 的角度回答这个问题,但我相信它在 Python for .NET 中是相似的。

clr.AddReference 调用可以被认为类似于将 .NET 程序集路径添加到 sys.path,您将其告知运行时,但您仍然需要将命名空间导入当前范围。

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

adapter = OneWireAccessProvider.getDefaultAdapter()

关于python - 在 pythonnet 中使用 OWdotNET.dll(.NET 的 python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10011484/

相关文章:

python - 如何使用 python-vlc 录制 30 秒的流?

python - 将 2 列与 pandas 中的列表值连接起来(避免重复和 NaN)

c# - 这个 ConcurrentDictionary + Lazy<Task<T>> 代码是如何工作的?

.net - F#中的数组遍历

c# - 来自 AsyncState 和 EndAccept() 函数的 .NET 套接字之间的区别

c# - 在 Asp.Net 中并行运行同一 Dll 的两个版本

python - 检索当前模型之外的 Django ManyToMany 结果

python - 如何用sklearn获得所有三个SVD矩阵?

c++ - 无法跨 DLL 传递 std::wstring

java - 将调用 iTunes DLL 的 Java 代码从使用 Com4j 转换为 Jacob