我正在尝试使用Boost python嵌入。我遇到了一个神秘的断言。 我主要关心的是“我搞砸了吗,还是报告了python和boost和/或编译器等不匹配的错误?”
我编写了一个非常简单的代码,运行了它,但失败了。我厌倦了用谷歌搜索出奇怪的断言,但是没有任何结果。参见https://www.google.com/search?q=(op-%3E_ob_prev+%3D%3D+NULL)+%3D%3D+(op-%3E_ob_next+%3D%3D+NULL) 版本是: 最新的Python 3.7.3 从vcpkg新下载的boost 1.70 使用最新的Visual Studio 2019(16.1.3)构建
#include<boost/python.hpp>
#include<boost/python/object.hpp>
using namespace boost::python;
int main()
{
Py_Initialize();
//object main_module = import("__main__");
//object main_namespace = main_module.attr("__dict__");
//object ignored = exec("print(\"hello from python\")");
}
我希望不会从对象中得到神秘的断言。c
错误是
Assertion failed: (op->_ob_prev == NULL) == (op->_ob_next == NULL)
它来自
\vcpkg\buildtrees\python3\src\v3.7.3-1161ad7a91-Lib-dynamic-crt-dynamic\Objects\object.c, line 72
或者boost 1.70与python 3.7.3不兼容吗?