Python PyImport\u导入找不到模块
我试图在我的c语言中调用python函数++ 导入python模块时,会出现以下错误: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
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使用beforePy\u Initialize()
设置sys.path
下面列出了在初始化解释器之前可以执行的操作:
隔离嵌入式Python解释器并正确设置路径,以避免部分使用已安装Python版本的模块时出现问题。您能否检查模块的搜索路径上是否有“.”?您可以在PyEval语句中转储
sys.path
的内容以查找。您可以使用一行PyImport\u ImportModule(“测试”)
setenv("PYTHONPATH", ".", 1);