我有以下提升:python 代码(gona.cpp)。
#include <iostream>
using namespace std;
void say_hello(const char* name) {
cout << "Hello " << name << "!\n";
}
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
using namespace boost::python;
BOOST_PYTHON_MODULE(hello)
{
def("say_hello", say_hello);
}
int main(){
return 0;
}
我的系统(Windows 7 32 位)中安装了 boost 1.47(boost pro)。我使用 Microsoft Visual Studio 2010 来构建它,它已经构建成功。但我想在 python 代码中使用它(作为导入)。我有以下代码(setup.py)将其构建到 python 模块中。
from distutils.core import setup
from distutils.extension import Extension
setup(name="PackageName",
ext_modules=[
Extension("hello", ["gona.cpp"],
libraries = ["boost_python", "boost"])
])
“gona”是文件 C++ 文件名。我使用以下命令在命令行中构建它。
python setup.py build
执行此操作后,我收到以下错误。
>python setup.py build
running build
running build_ext
building 'hello' extension
C:\MinGW\bin\gcc.exe -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c De
cision_Tree.cpp -o build\temp.win32-2.7\Release\gona.o
gona.cpp:9:35: fatal error: boost/python/module.hpp: No such file or di
rectory
compilation terminated.
error: command 'gcc' failed with exit status 1
看来我系统中的 boost 安装仅适用于 Visual Studio(因为它已成功构建)。我在 Visual Studio 中运行了其他没有问题的 boost 程序。如何将其构建为 python 模块,以便可以在 python 代码中导入?(使用命令行或 Visual Studio)