gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 02:45:41 25 4
gpt4 key购买 nike

我使用 pythonnet 添加了一个 dll 到我的 Python 脚本中,如下所示:

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

它工作得很好,我可以直接从 Supplier.Bundle 命名空间调用方法或实例化类,但是当我想从 Supplier.Bundle 等嵌套命名空间调用方法时。功能我收到错误:

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

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

最佳答案

问题已经解决了。实际上,Supplier.Bundle.dll 还有另外两个依赖项,因此将缺少的 dll 复制到项目根目录后,导入就不会出现错误。

此外,pythonnet 包应该抛出有关该问题的更具体的异常。这将使故障排除变得更加容易。

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

关于c# - 如何在 Python 中从 C# dll 导入子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45277129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com