weixin_47721041 2023-02-16 22:12 采纳率: 54.5%
浏览 25

c++调用python中pandas不能被引用

c++调用python中pandas不能被引用

img

#include <Python.h>
int main() {

Py_Initialize();
PyRun_SimpleString("print('hello world')");
PyObject* pModule = NULL;
PyObject* pFunc = NULL;
PyObject* pArg = NULL;

pModule = PyImport_ImportModule("TB");
pFunc = PyObject_GetAttrString(pModule, "times1");

//int returnedString = 1;

PyObject* funcRes = PyObject_CallObject(pFunc, NULL);
PyObject* pResultStr = PyObject_Repr(funcRes);
string returnedString = PyUnicode_AsUTF8(pResultStr);
cout << "res1=" << returnedString << "\n";
Py_Finalize();

//test();
//return  returnedString;
return 0;

}

img

运行老是报错,没有import pandas as pd 就不会错怎么办

  • 写回答

3条回答 默认 最新

  • qq_46161207 2023-02-16 23:02
    关注

    在 C++ 中调用 Python 程序时,需要确保 Python 解释器能够访问所需的模块和包,否则会报错。在你的代码中,报错信息显示没有找到 pandas,可能是因为 Python 解释器没有找到 pandas 模块。

    你可以尝试通过在 C++ 中设置 Python 模块路径来解决这个问题。可以通过以下步骤设置模块路径:

    1.在你的 Python 环境中运行以下代码获取 pandas 模块的路径:

    
    import pandas as pd
    print(pd.__file__)
    

    2.在 C++ 中调用 Py_SetPath 函数设置模块路径,示例代码如下:

    Py_Initialize();
    PyRun_SimpleString("print('hello world')");
    
    // 设置模块路径,将 PATH_TO_PANDAS_MODULE_PATH 替换为 pandas 模块的路径
    char* path = getenv("PYTHONPATH");
    setenv("PYTHONPATH", PATH_TO_PANDAS_MODULE_PATH, 1);
    
    PyObject* pModule = PyImport_ImportModule("TB");
    // ...
    

    这样就可以让 Python 解释器找到 pandas 模块了。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月16日

悬赏问题

  • ¥15 求ax+by=n的正整数解
  • ¥50 使用MS Log Parser查询使用Bitvise SSH Server登录的IP
  • ¥20 校园二手交易小程序搭建
  • ¥15 请问在ubuntu用conda创建环境报错怎么能解决
  • ¥15 STM32CubeMX/proteus按键控制指示灯颜色切换
  • ¥20 python,计算区位熵和扩张指数
  • ¥15 Python环境配置
  • ¥15 大四学生的困惑,有偿提问!
  • ¥15 解决页面无法编入索引:被“noindex”标签排除的问题?
  • ¥15 arduino测量电阻