我向pythonnet
python脚本添加了一个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] 删除。
我来说两句