Python PyImport\u导入找不到模块

Python PyImport\u导入找不到模块,python,c++,Python,C++,我试图在我的c语言中调用python函数++ 导入python模块时,会出现以下错误: ModuleNotFoundError:没有名为“test”的模块 以下是我导入模块的方式: #define PY_SSIZE_T_CLEAN #include <Python.h> int main() { Py_Initialize(); PyObject *pName = PyUnicode_FromString("test"); PyObje

我试图在我的c语言中调用python函数++

导入python模块时,会出现以下错误:

ModuleNotFoundError:没有名为“test”的模块

以下是我导入模块的方式:

#define PY_SSIZE_T_CLEAN
#include <Python.h>

int main()
{
    Py_Initialize();

    PyObject *pName = PyUnicode_FromString("test");
    PyObject *pModule = PyImport_Import(pName);

    if (pModule == nullptr)
    {
        PyErr_Print();
        std::exit(1);
    }

    Py_Finalize();

    return 0;
}
我不确定它是否值得一提,但可执行文件位于同一目录中,并且它也从该目录运行


如何修复此问题?

通过设置“PYTHONPATH”环境变量解决了此问题:

setenv("PYTHONPATH", ".", 1);
感谢@Botje

使用before
Py\u Initialize()
设置
sys.path

下面列出了在初始化解释器之前可以执行的操作:


隔离嵌入式Python解释器并正确设置路径,以避免部分使用已安装Python版本的模块时出现问题。

您能否检查模块的搜索路径上是否有“.”?您可以在PyEval语句中转储
sys.path
的内容以查找。您可以使用一行
PyImport\u ImportModule(“测试”)
setenv("PYTHONPATH", ".", 1);