python的代码(工作)
import ldap,ldif
l = ldap.initialize('ldaps://RIO-PC:636')
l.set_option(ldap.OPT_TIMEOUT);
我想提取ldap.OPT_TIMEOUT的常量值,但是如何?
#include <iostream>
#include <boost/python.hpp>
int main()
{
namespace bp = boost::python;
try{
Py_Initialize();
bp::object main_module = bp::import("__main__");
bp::import("ldap");
bp::import("ldif");
bp::object main_namespace = main_module.attr("__dict__");
bp::exec("import ldap,ldif\n"
"l = ldap.initialize('ldaps://RIO-PC')\n",
main_namespace);
boost::python::object ldap = boost::python::extract<boost::python::object>(main_namespace["l"]);
ldap.attr("OPT_TIMEOUT"); //this line will throw exception
}catch(boost::python::error_already_set const &){
PyErr_Print();
PyErr_Clear();
}
}
错误消息是
AttributeError:SimpleLDAPObject没有属性&#39; OPT_TIMEOUT&#39;
环境
编译器:vc2008 提升版:1.55_0 os:win7 64bits(x64)
答案 0 :(得分:1)
您的C ++代码正在尝试提取l.OPT_TIMEOUT
,而不是ldap.OPT_TIMEOUT
。尝试
bp::object ldap_module = bp::import("ldap");
ldap_module.attr("OPT_TIMEOUT");