c++ - 在 boost::python::import 期间和之后会发生什么?

标签 c++ python boost

Boost 文档没有指定这一点。当我使用 boost::python::import , 指定的模块到底导入到哪里了?我的猜测是在 '__main__' 中(只是为了确定)。

此外,当模块对象超出范围时会发生什么?考虑到 Boost 文档中的措辞——“返回:一个包含对导入模块的引用的对象实例”——我猜只有引用超出范围,模块对象仍然在 '__main__'(或导入的任何地方)。

最佳答案

底层机制是PyImport_ImportModule ,不,它不会触及 __main__。成功导入的模块被插入到sys.modules dict,因此当您 DECREF 函数返回的内容时,该对象不会被释放——至少还有一个引用是活着的。

关于c++ - 在 boost::python::import 期间和之后会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6816373/

相关文章:

c++ - Qt Creator 2.8.1 Qt 5.1.1 Qt Designer Linux 显示新窗体

python - 有没有办法在 2 个字段上创建一个唯一的 id?

c++ - 无锁环形缓冲区 boost 示例中的内存排序

c++ - boost 使用 struct 中包含的 typedef 定义的 native 类型的序列化

java - JNI 将字符串从 java 传递到 c++,然后将 c++ 字符串传递给字符串数组

c++ - "fastfwd"文件可以是管道/套接字/fifo

c++ - 如何在 C++11 中为 result_of 编写辅助类型

python - 无法使用 python 在 azure 函数中使用 pandas 读取 csv

Python - 虽然已安装但未找到包

c++ - 关闭由于 boost 库引起的警告