我在WinXP-32上导入boost-python模块时遇到问题。 我正在使用python 2.6.6,boost.python 1.41 precompiled libs by boostpro和VC ++ 8(VisualStudio 2005)。
在编译下面的代码之后,我尝试从python命令行导入生成的pyHELLO.pyd并始终得到:
“ImportError:DLL加载失败:这个 应用程序无法启动 因为应用程序配置 是不正确的。重新安装 应用程序可以解决这个问题。“
我重新安装了python并尝试了其他的boost版本。但它都没有帮助。
我在尝试导入模块的目录中有相应的boost dll。
相同的代码适用于Win7下的VC ++ 9。
以下是代码:
int sayHello() {
cout << "Hello !" << endl;
}
BOOST_PYTHON_MODULE(pyBoostTest)
{
def("sayHello", sayHello);
}
任何帮助都非常感谢。
答案 0 :(得分:0)
解决:
我的机器上缺少boost.python dll所依赖的MSVC80CRT dll的正确版本。我从MS下载了相应的redist包并安装了它。现在它有效。
dependencywaler没有显示此dll缺少依赖项。 在阅读了清单和SxS之后,我发现了正确的dll版本 在清单中,它本身嵌入在dll标题中。
如果在Visual Studio中打开dll,则可以阅读该信息。然后你检查一下 dll版本存在于c:\ windows \ winsxs文件夹中。如果没有,你可以找回失踪 通过从MS下载相应的“redist”包来实现。只需搜索dll版本。
感谢大卫提供清单上的提示。