gpt4 book ai didi

python - 通过boost python从python中提取常量值

转载 作者:行者123 更新时间:2023-11-28 06:52:58 28 4
gpt4 key购买 nike

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 没有属性 'OPT_TIMEOUT'

环境

编译器:vc2008 boost 版本:1.55_0操作系统:win7 64 位(x64)

最佳答案

您的 C++ 代码正在尝试提取 l.OPT_TIMEOUT,而不是 ldap.OPT_TIMEOUT。尝试

    bp::object ldap_module = bp::import("ldap");
ldap_module.attr("OPT_TIMEOUT");

关于python - 通过boost python从python中提取常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23557782/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com