Ошибка утверждения в Py_Initialize () в ускоренном питоне - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь использовать 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?

...