我正在使用 Boost Python 库为我的 C++ 代码创建 python 扩展。我希望能够从 python 调用下面显示的 C++ 代码中的 'greet' 函数:
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
char const* greet()
{
return "hello, world";
}
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
和python代码:
import hello_ext
print hello_ext.greet()
我已经设法使用 bjam 做到了这一点(生成了 hello_ext.pyd 并且效果很好),但现在我想使用 Visual Studio 2008 构建它。构建了一个 hello.dll (但既没有 hello_ext.dll 也没有任何.pyd)。调用我的 python 代码后,我得到一个错误:
ImportError:没有名为 hello_ext 的模块。
将 hello.dll 重命名为 hello.pyd 或 hello_ext.pyd 后,我得到另一个 ImportError: Dll load failed
如何使用 VS 2008 构建正确的 .pyd 文件?