c++调用python读表错误
Py_Initialize();
PyRun_SimpleString("import pandas as pd");
PyRun_SimpleString("print('hello world')");
PyObject* pModule = NULL;
PyObject* pFunc = NULL;
PyObject* pArg = NULL;
pModule = PyImport_ImportModule("testMultiprocessingDll");
pFunc = PyObject_GetAttrString(pModule, "Start1");
//int returnedString = 1;
PyObject* funcRes = PyObject_CallObject(pFunc, NULL);
PyObject* pResultStr = PyObject_Repr(funcRes);
def Start1():
stocks = pd.read_excel(r'../data/筛选模型点位统计(1).xlsx')#.reset_index(drop=True)
你发布的代码似乎不完整,因为 Python 中没有定义“Start1”函数。你提供的代码似乎只是一个片段。
假设你已经在 Python 中定义了“Start1”函数并且它在从 Python 代码调用时工作正常,你可以检查一些事项来解决问题:
1.确保包含“Start1”函数的 Python 脚本位于正确的位置并且可以被你的 C++ 程序找到。你可能需要指定脚本的完整路径或确保它与您的 C++ 程序位于同一目录中。
2.检查 PyImport_ImportModule 和 PyObject_GetAttrString 函数的返回值以确保它们返回有效对象。如果这些函数中的任何一个返回 NULL,则意味着加载模块或检索函数时出错,你应该检查错误消息以了解哪里出了问题。
3.确保“Start1”函数没有参数,因为你将 NULL 传递给 PyObject_CallObject。如果函数接受参数,则需要创建 Python 对象来表示这些参数并将它们传递给 PyObject_CallObject。
4.检查 PyObject_CallObject 函数的返回值以确保它返回一个有效的对象。如果它返回 NULL,则表示调用该函数时出错,你应该检查错误消息以了解哪里出了问题。
希望这些提示将帮助你解决问题并使你的代码正常工作。
不知道你这个问题是否已经解决, 如果还没有解决的话: