c++调python踩坑日志-创新互联-成都快上网建站

c++调python踩坑日志-创新互联

目录

import_array();报错
矩阵互相转换
#include numpy相关vs2019配置
数组太长报错

成都创新互联公司主营宾县网站建设的网络公司,主营网站建设方案,成都APP应用开发,宾县h5小程序制作搭建,宾县网站营销推广欢迎宾县等地区企业咨询import_array();报错

参考:https://blog.csdn.net/weixin_40232401/article/details/106944336#:~:text=%E5%9C%A8,import_array%20%28%29%E5%87%BA%E7%8E%B0%E6%8A%A5%E9%94%99%EF%BC%8C%E6%9C%89%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%8C%E8%BF%94%E5%9B%9E%E5%80%BC%E7%B1%BB%E5%9E%8B%E4%B8%8E%E5%87%BD%E6%95%B0%E7%B1%BB%E5%9E%8B%E4%B8%8D%E5%8C%B9%E9%85%8D%EF%BC%88%E8%BF%99%E6%AE%B5%E4%BB%A3%E7%A0%81%E5%9C%A8%E7%9A%84%E5%87%BD%E6%95%B0%E6%97%A0%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%89%E3%80%82
这里简单实现了一下QImage格式的图片转opencv mat再转,后传入python的功能。
在 import_array()出现报错,有返回值,返回值类型与函数类型不匹配(这段代码在的函数无返回值)。

解决办法:
找到\Path\to\Pythonfile\Python36\Lib\site-packages\numpy\core\include\numpy__multiarray_api.h,1548行左右,删去return NUMPY_IMPORT_ARRAY_RETVAL
https://blog.csdn.net/ganwenbo2011/article/details/89790762

编译,再出错

无法解析的外部符号 __imp___Py_RefTotal
无法解析的外部符号 __imp___Py_NegativeRefcount,该符号在函数 __import_array 中被引用
1
2
解决方法
修改两个头文件
1 注释掉object.h第56行
//#define Py_TRACE_REFS
2 pyconfig.h 337行
//# define Py_DEBUG

矩阵互相转换
// Build the 2D array
PyObject  *pReturn, *pFunc;
PyArrayObject *np_ret, *np_arg;
const int SIZE{ 10 };
npy_intp dims[2]{SIZE, SIZE};
const int ND{ 2 };
long double(*c_arr)[SIZE]{ new long double[SIZE][SIZE] };
long double* c_out;
for (int i{}; i< SIZE; i++)
    for (int j{}; j< SIZE; j++)
        c_arr[i][j] = i * SIZE + j;

PyObject* pReturn1 = PyArray_SimpleNewFromData(ND, dims, NPY_LONGDOUBLE,
    reinterpret_cast(c_arr));

np_arg = reinterpret_cast(pReturn1);

// Calling array_tutorial from mymodule
PyObject *pName = PyUnicode_FromString("mymodule");

PyObject* pArgs = PyTuple_New(1);
PyTuple_SetItem(pArgs, 0, reinterpret_cast(np_arg));
PyObject* pReturn2 = PyEval_CallObject(pFunc1, pArgs);
#include numpy相关vs2019配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数组太长报错

设置成一千万,就不报错了
在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站名称:c++调python踩坑日志-创新互联
网页地址:http://kswjz.com/article/cdogid.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流