C ++ Py_Initialize()故障处理

时间:2019-07-29 09:46:26

标签: python c++ boost

我希望能够在Py_Initialize()失败时捕获。找不到或未正确配置python安装时,可能会发生这种情况。

为此,我希望能够以这种方式解决它:

try
{
    Py_Initialize();
}
catch (error_already_set  const &)
{
    cout << "Please provide the path to your Python Folder" << endl;
    //...

    return;
}

相反,此代码失败,并且应用程序崩溃而没有进入catch块。

Fatal Python error: initfsencoding: unable to load the file system codec ModuleNotFoundError: No module named 'encodings'

请注意,我没有尝试修复python安装。

我要解决的实际问题是确保在未安装python或配置不正确的计算机上调用Py_Initialize()时,应用不会崩溃。

因此,如果由于某种原因不可能在Py_Initialize()期间捕获错误(在升压文档中,error_already_set抛出(仅?)是在表达式求值时抛出的(引用:“如果在python表达式的评估,抛出error_already_set“)),可以检测到损坏的python配置并避免调用Py_Initialize()开始吗?

0 个答案:

没有答案