3

我们正在使用 Python for .Net 从 Python 脚本调用使用 C# 构建的 .NET API。我们得到 ImportError: No module named - 导入完成时出错,如下所示。

Python脚本:

import sys
sys.path.append(r"C:\myfolderA\myfolderB")
print sys.path
import clr
clr.FindAssembly(r"AA.BB.CC")
clr.AddReference(r"AA.BB.CC")
from AA.BB.CC.Api.DDInterface import DDClient

在上面的行中,我收到以下错误

Traceback (most recent call last):
  File "C:\myfolderA\myfolderB\testAPI.py", line 7, in <module>
    from AA.BB.CC.Api.DDInterface import DDClient
ImportError: No module named AA.BB.CC.Api.DDInterface

没有其他信息可用于准确识别问题。来自同一项目的 15 天前构建的 Dll 可以正常工作。这个项目可能在两者之间经历了一些变化。

如何准确识别这个问题?

这可能是依赖问题吗?我尝试使用 JustDecompile 来比较旧的 dll 和新的 dll,但找不到任何异常。

非常感谢您的帮助。

谢谢,

4

2 回答 2

2

在 python 论坛的帮助下,我能够使用 Microsoft 的 Fuslogvw.exe(程序集绑定日志查看器)并找出导致错误的依赖 dll。

谢谢

于 2015-01-02T14:45:37.060 回答
1

这是我原始答案的链接:

https://mail.python.org/pipermail/pythondotnet/2014-December/001626.html

我推荐使用对应的.NET框架的Assembly Binding Log Viewer (fuslogvw.exe)来查看加载程序集的日志文件。

将日志位置设置为自定义并在设置中指向您的程序集文件夹。日志应显示加载的 DLL 序列和任何错误。

这对我有用,请参见此处:

无法加载文件或程序集或其依赖项之一

在我的机器上找不到 fuslogvw.exe

于 2015-01-11T02:37:37.910 回答