以下是我要导入的C ++代码。
#include <boost/python.hpp>
#include <string>
/*
* This is the C++ function we write and want to expose to Python.
*/
const std::string hello() {
return std::string("hello, zoo");
}
/*
* This is a macro Boost.Python provides to signify a Python extension module.
*/
BOOST_PYTHON_MODULE(zoo) {
// An established convention for using boost.python.
using namespace boost::python;
// Expose the function hello().
def("hello", hello);
}
以下代码是python脚本。
import zoo # In zoo.cpp we expose hello() function, and it now exists
in the zoo module.
assert 'hello' in dir(zoo) # zoo.hello is a callable.
assert callable(zoo.hello) # Call the C++ hello() function from Python.
print zoo.hello()
当我尝试运行脚本时,在终端上我没有得到“ hello,zoo”作为输出。我在哪里犯错了?
以下是我收到的错误消息:
导入:未经授权的zoo' @ error/constitute.c/WriteImage/1028.
./visit_zoo.py: line 3: syntax error near unexpected token
('
./visit_zoo.py:第3行:在dir(zoo)中断言“ hello”
答案 0 :(得分:0)
您是否忘了像我一样指示脚本应由Python运行?
您可以在脚本文件的标题中包含python可执行文件:
#!/usr/bin/env python2
并使文件可执行或使用Python调用脚本:
$ python <filename>