将DLL模块导入Python时,有时我会得到:
ImportError: DLL load failed: The specified module could not be found.
问题通常是:
- 缺少 DLL 依赖项(通常是 Visual Studio 运行时 DLL(
- 编译为 32 位的 DLL 或依赖项,而应为 64 位
依赖沃克有时会回答这个问题。但是,有时它不会,特别是如果问题是缺少Visual Studio运行时DLL。
有没有办法让Python告诉我缺少的DLL依赖项的名称?
这是我最终所做的。
我无法单独使用Python来解决我的问题。所以我改用C++。
我制作了一个小型 win32 应用程序来链接到与 .pyd
文件一起生成的.lib
文件,并强制它使用 .pyd
文件中的符号:
extern "C" __declspec(dllimport) void initmymodule();
。
printf("%pn", initmymodule);
然后,当运行这个程序时,Windows会告诉我缺少哪个DLL。
是的。从外壳(cmd.exe或Windows中的powershell(运行script_name.py并阅读错误消息。该错误将显示缺少哪个依赖项。
如果您缺少多个过程,则可能需要多次重复此过程。
任何IDE,包括IDLE都会在一个窗口中显示一条错误消息,隐藏在错误消息中的是丢失文件的名称。