用于.Net的Python错误:ImportError:没有名为的模块

时间:2014-12-31 18:45:35

标签: python .net dll assemblies python.net

我们使用Python for .Net来调用使用C#从Python脚本构建的.NET API。 我们得到ImportError:没有命名模块 - 导入完成时出错如下。

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,但是找不到任何不寻常的东西。

非常感谢您的帮助。

谢谢,

2 个答案:

答案 0 :(得分:2)

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

谢谢

答案 1 :(得分:1)

以下是我原来答案的链接:

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

我建议使用程序集绑定日志查看器(fuslogvw.exe) 相应的.NET框架,用于查看加载程序集的日志文件。

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

这对我有用,请看这里:

Could not load file or assembly or one of its dependencies

Can't locate fuslogvw.exe on my machine