如何在Python中从C#dll导入子模块

扎博尔奇斯

我向pythonnetpython脚本添加了一个dll ,如下所示:

import os
import clr
clr.AddReference(os.path.join(os.path.abspath('.'), 'dlls', 'Supplier.Bundle.dll'))
import Supplier.Bundle

它工作得很好,我可以直接从Supplier.Bundle名称空间调用方法或实例化类,但是当我想从嵌套名称空间调用方法时,Supplier.Bundle.Features出现错误:

AttributeError: Features

我还尝试了以下方法:

import Supplier.Bundle.Features

哪个抛出:

ModuleNotFoundError: No module named 'Supplier.Bundle.Features'; 'Supplier.Bundle' is not a package

在C#中使用相同的dll可以正常工作:

using Supplier.Bundle.Features

所以我的问题是:如何使用Python3.x访问C#dll的嵌套名称空间的类和方法pythonnet

扎博尔奇斯

设法解决了问题。实际上,它们Supplier.Bundle.dll还有其他两个依赖项,因此,将丢失的dll复制到项目根目录后,导入就不会出现错误。

此外,该pythonnet程序包还应该引发有关该问题的更具体的异常。那将使故障排除更加容易。

有关此问题的更多信息:https : //github.com/pythonnet/pythonnet/issues/516

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章