网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

c++调用python详细教程-创新互联

1. 引入python环境的include和libs

创新互联专注于凤冈企业网站建设,响应式网站,商城建设。凤冈网站建设公司,为凤冈等地区提供建站服务。全流程定制网站建设,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
INCLUDEPATH += D:\Python\Anaconda3\include

LIBS += -LD:\Python\Anaconda3\libs -lpython39

2. 准备python脚本。注意:python脚本应当能在cmd独立运行,如果运行不了说明环境有问题,调用也会失败。python返回多个结果,采用列表。

import numpy as np
from scipy import interpolate

def fun1(a):
    x = np.array([1,2,3,4,5,6,7,8,9,10])
    y = np.array([1,4,9,16,25,36,49,64,81,100])
    z = np.array([1,3,5,7,9,11,13,15,17,19])
    f1 = interpolate.interp1d(x,y,kind='cubic')
    f2 = interpolate.interp1d(x,z,kind='cubic')
    return [f1(a),f2(a)]

#fun1(7.77)

3. 调用流程

#include#include//引入头文件

using namespace std;

int main()
{
    //设置PythonHome
    Py_SetPythonHome(L"D:/Python/Anaconda3");
    //初始化
    Py_Initialize();

    PyRun_SimpleString("import sys");
    //设置hello.py文件的路径。也可以直接将python文件放到debug目录下exe文件所在地
    PyRun_SimpleString("sys.path.append('D:/Qt/QtProject/helloworld')");

    //指针变量
    PyObject *m,*f,*args,*result;

    //获取模块,hello为python文件名
    m = PyImport_ImportModule("hello");
    if(!m) cout<<"hello failed";

    //获取函数,fun1为函数名
    f = PyObject_GetAttrString(m,"fun1");
    if(!f) cout<<"fun1() failed";

    //设置参数,最好传入元组(d),不然容易报错
    args = Py_BuildValue("(d)",7.7);

    //执行函数
    result = PyObject_CallObject(f,args);

    double ret,ret2;
    //获取单个值
//    PyArg_Parse(result,"d",&ret);

    //获取列表值,相应的python脚本应当返回列表而不是元组
    ret = PyFloat_AsDouble(PyList_GetItem(result,0));
    ret2 = PyFloat_AsDouble(PyList_GetItem(result,1));
    cout<

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


网站名称:c++调用python详细教程-创新互联
网页URL:http://bjjierui.cn/article/dhssge.html