繁体   English   中英

Boost.Python示例,Windows 7 x64,“ ImportError:DLL加载失败:找不到指定的模块。”

[英]Boost.Python examples, Windows 7 x64, “ImportError: DLL load failed: The specified module could not be found.”

我花了两天的时间尝试从Boost.Python启动带有“导入错误:DLL加载失败:找不到指定的模块”错误的示例,同时尝试加载已编译(使用bjam)的pyd模块。 我使用的是Windows 7 x64,Python 2.7 x64和Boost 1.47。 我已经在StackOverflow和其他网站上追踪了不同的答案。 全新安装(Python 32和64位,Boost预编译),手动Boost的库构建,带有依赖项遍历器的DLL检查等等,没有运气。 我注册分享了解决方案,该解决方案在这里有效,希望对遇到同样错误的人有所帮助;)

两种解决方案,无需使用regedit

  1. 建立dll时加入BOOST_PYTHON_STATIC_LIB marco。 它将使boost.python静态链接到您的dll文件,而不是在运行时动态加载。
  2. 将boost.python dll添加到PATH或将其复制到dll所在的相同目录

问题出在Windows更新KB2264107(http://support.microsoft.com/kb/2264107)上,带有DLL搜索例程的“消息”(安全修补程序)。 将注册表值[HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Control \\ Session Manager]设置为:CWDIllegalInDllSearch设置为0,可以正确加载DLL文件并正确导入.pyd模块。 在其他Windows版本上也可能会发生这种情况。

我的解决方案是下载Microsoft Visual C ++ 2015重新分发 https://www.microsoft.com/zh-cn/download/details.aspx?id=48145

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM