Я пытаюсь использовать 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
boost 1.70, недавно скачанный с vcpkg
построено с использованием новейшей визуальной студии 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?