断言在Boost python中的Py_Initialize()处失败

时间:2019-06-21 18:32:19

标签: c++ boost-python vcpkg

我正在尝试使用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不兼容吗?

0 个答案:

没有答案