weixin_47721041 2023-02-17 15:53 采纳率: 54.5%
浏览 12

c++调用python读表错误

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)

img

  • 写回答

2条回答 默认 最新

  • qq_46161207 2023-02-17 16:00
    关注

    你发布的代码似乎不完整,因为 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,则表示调用该函数时出错,你应该检查错误消息以了解哪里出了问题。

    希望这些提示将帮助你解决问题并使你的代码正常工作。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月17日

悬赏问题

  • ¥50 如何进行点云姿态调整优化
  • ¥20 关于c++的问题 如何用qt完成
  • ¥15 台达变频器MS300与伺服驱动器B3系列的抱闸与电路设计如何实现
  • ¥20 C++通过HICON获取argb像素数组
  • ¥15 如何利用支持向量机提高分类器正确率和筛选理想分类器
  • ¥15 Pygame坦克大战游戏开发实验报告
  • ¥15 用vmmare虚拟机用sentaurus仿真的时候,调用terminal程序,输入swb指令弹出这个,打不开workbench,桌面上面的sentaurus workbench也打不开
  • ¥75 使用winspool.drv的SetPrinter设置打印机失败
  • ¥15 simulink 硬件在环路仿真
  • ¥15 python动态规划:N根火柴摆出的最大数字