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

stx*_*stx 5 python import boost-python windows-7

我花了两天的时间尝试从Boost.Python中启动示例,其中包含"ImportError:DLL加载失败:无法找到指定的模块"错误,同时尝试加载已编译的(使用bjam)pyd模块.我使用的是Windows 7 x64,Python 2.7 x64和Boost 1.47.我在StackOverflow和其他网站上跟进了不同的答案.全新安装(Python 32和64位,Boost预编译),手动Boost的库构建,DLL检查与依赖步行器等等,没有运气.我注册分享解决方案,这在这里工作,我希望可以帮助某人,努力解决同样的错误;)

jea*_*ean 6

两种解决方案,不需要使用regedit

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


stx*_*stx 2

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