我花了两天的时间尝试从Boost.Python中启动示例,其中包含"ImportError:DLL加载失败:无法找到指定的模块"错误,同时尝试加载已编译的(使用bjam)pyd模块.我使用的是Windows 7 x64,Python 2.7 x64和Boost 1.47.我在StackOverflow和其他网站上跟进了不同的答案.全新安装(Python 32和64位,Boost预编译),手动Boost的库构建,DLL检查与依赖步行器等等,没有运气.我注册分享解决方案,这在这里工作,我希望可以帮助某人,努力解决同样的错误;)
我正在尝试创建一个 boost python 扩展,但更喜欢静态链接 boost python 库。否则,您需要在使用 python 模块的每台计算机上安装完全相同版本的 boost。不过我没有使用 bjam。
这在 linux (ubuntu) 中有效,但会导致动态链接:
g++ -o python_example.o -c python_example.cpp -Wall -fPIC -I/usr/include/python2.7
g++ -shared -o python_example.so python_example.o -lpython2.7 -lboost_python -lboost_system
Run Code Online (Sandbox Code Playgroud)
python_example.cpp 只是基本示例代码:
#include <Python.h>
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
#include <boost/python.hpp>
char const* greet()
{
return "hello, world";
}
BOOST_PYTHON_MODULE(python_example)
{
using namespace boost::python;
def("greet", greet);
}
Run Code Online (Sandbox Code Playgroud)
很多谷歌结果给了我很多尝试的机会,但没有什么效果。