python boost范围导致NoneType错误

HG

我编译了第三方python模块(alembic),alembic导入了另一个python模块(imath)by PyImport_ImportModule,imath又导入了另一个python模块(iex)by PyImport_ImportModule代码如:

BOOST_PYTHON_MODULE(alembic)
{
    handle<> imath(PyImport_ImportModule("imath"));
}

BOOST_PYTHON_MODULE(imath)
{
    handle<> iex(PyImport_ImportModule("iex"));
}

BOOST_PYTHON_MODULE(iex)
{
    scope().attr("BaseExc") = "An Exception";
}

如果我先导入 imath,然后导入 alembic,它会起作用。但是如果我直接导​​入 alembic,它会在scope().attr("BaseExc") = "An Exception". 我已经阅读了boost代码,我确定原因detail::current_scope是空的,但我不知道为什么。

任何人都可以帮助我吗?为什么会发生这种情况,我该如何避免?

添加:

我无法通过上面的代码重现它。我写了一个cpp文件并用这些代码填充它:

#include "boost/python.hpp"

using namespace boost::python;

BOOST_PYTHON_MODULE(alembic)
{
    handle<> imath(PyImport_ImportModule("imath"));
}

然后使用这个选项来编译它:

g++ -fPIC -shared -I/usr/include -L/usr/lib -lboost_python -lpython2.7 -L/usr/lib64 -Wl,-soname,alembicmodule.so -o alembicmodule.so alembic.cpp

它工作正常。我很惊讶,因为在第三方模块中,错误发生在第一行。也许这不是 boost 错误,而是 cmake 错误?

HG

这个问题来自编译选项。Cmake 生成一个链接脚本,该脚本用于libboost_python.a链接 python 模块alembicmodule.so当我更改libboost_python.a为 时libboost_python.so,此问题已解决。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python PIP 导致错误

来自分类Dev

循环遍历 Python 数组导致列表索引超出范围错误

来自分类Dev

Python Facebook“ NoneType对象错误”

来自分类Dev

BeautifulSoup / Python发生NoneType错误

来自分类Dev

Python Facebook“ NoneType对象错误”

来自分类Dev

BeautifulSoup / Python发生NoneType错误

来自分类Dev

Python:__str__method 仅针对两个相同字段之一导致“必须是 str,而不是 NoneType”错误

来自分类Dev

由于版本而导致的Python错误?

来自分类Dev

python条件导致错误的结果

来自分类Dev

用boost :: python链接错误

来自分类Dev

错误链接到Boost Python

来自分类Dev

类错误-NoneType和Int-Python

来自分类Dev

Python + Matplotlib-> Twinx出现NoneType错误

来自分类Dev

Python 装饰器留下 NoneType 错误

来自分类Dev

Python OverflowError:数学范围错误

来自分类Dev

Python OverflowError:数学范围错误

来自分类Dev

Python 中的日期范围错误

来自分类Dev

Boost.Python __init __()应该返回None,而不是'NoneType'

来自分类Dev

Python Regex错误-返回Nonetype或字符串的错误部分

来自分类Dev

Python Regex错误-返回Nonetype或字符串的错误部分

来自分类Dev

Python multiprocessing + savefig导致错误或系统锁定

来自分类Dev

Laravel Websockets导致python套接字错误

来自分类Dev

python嵌套列表访问导致循环错误

来自分类Dev

安装python会导致dpkg错误

来自分类Dev

美丽的汤和Python导致的属性错误

来自分类Dev

由于循环依赖导致的 Python 注释错误

来自分类Dev

范围导致Postgres中的错误

来自分类Dev

Boost.Python和Boost.Signals2:分段错误

来自分类Dev

Python函数/按钮参考/范围错误