精华内容
下载资源
问答
  • 手把手教学:VScode中配置C++调用python接口 why 看到这个标题有些人说了,为什么好好的C++你非要调用python?人家明明是两种语言呀! 但是在实际应用中,有时候会用到C++调用python来更简单地去完成一些功能,不然...

    why

    看到这个标题有些人说了,为什么好好的C++你非要调用python?人家明明是两种语言呀!
    但是在实际应用中,有时候会用到C/C++调用python来更简单地去完成一些功能,不然人家python为什么有一个文件夹叫include,里边全是.h文件呢?

    VScode中配置环境

    首先是在VScode中为C++调用python接口配置环境,这里假设你已经配置好了c++编程环境!

    1、配置step1

    用快捷键Ctrl+Shift+X打开Extensions 商店,输入python,install:

    在这里插入图片描述

    2、配置step2

    用快捷键Ctrl+Shift+P打开命令面板,打开C/C++:编辑配置(UI):在这里插入图片描述
    然后编辑c_cpp_properties.json文件,在文件中的includePath项添加自己的python include路径:“D:\\Python\\Python37\\include”,注意格式

    {
        "configurations": [
            {
                "name": "Win32",
                "includePath": [
                    "${workspaceFolder}/**",
                    "D:\\Python\\Python37\\include"
                ],
                "defines": [
                    "_DEBUG",
                    "UNICODE",
                    "_UNICODE"
                ],
                "compilerPath": "D:\\MinGW\\bin\\gcc.exe",
                "cStandard": "c11",
                "cppStandard": "c++17",
                "intelliSenseMode": "clang-x64"
            }
        ],
        "version": 4
    }
    

    3、测试

    测试一下:编辑hello.py

    def printHello():
        print("Hello World")
    

    c++调用python有两种方式,我在代码中都进行了测试,编辑main.cpp

    #include "D:\Python\Python37\include\Python.h"
    //#include <Python.h>
    #include <iostream>
    using namespace std;
    void cython1()
    {
        Py_Initialize();                          //初始化python解释器,告诉编译器要用的python编译器
        PyRun_SimpleString("import hello");       //调用python文件
        PyRun_SimpleString("hello.printHello()"); //调用上述文件中的函数
        Py_Finalize();                            //结束python解释器,释放资源
    }
    
    void cython2()
    {
        Py_Initialize();
        PyObject *pModule = NULL;
        PyObject *pFunc = NULL;
        pModule = PyImport_ImportModule("hello");              //这里是要调用的文件名
        pFunc = PyObject_GetAttrString(pModule, "printHello"); //这里是要调用的函数名
        PyEval_CallObject(pFunc, NULL);                        //调用函数
        Py_Finalize();
    }
    
    int main()
    {
        int select;
        cin >> select;
        select == 1 ? cython1():cython2();
        return 0;
    }
    

    4、问题汇总(重磅)

    1、为什么我包含了Python.h,c++代码中调用也没有报错,但是运行时会出现如下错误?(暂未从根本上解决问题,仿照后面linux上的头文件调用方法也是无效,稍后解决会更新)

    main.cpp:2:10: fatal error: Python.h: No such file or directory
     #include "Python.h"
              ^~~~~~~~~~
    compilation terminated.
    

    说明没有include成功啊,这里我猜测是由于版本问题导致的,暂未得到解决,但是有一种方式是绝对可以使用的,并且已经在代码中体现了,那就是…直接inlcude绝对路径!

    #include "D:\Python\Python37\include\Python.h"
    

    可能心细的朋友已经发现了,你只是包含了头文件,链接库还没有链接啊!但是我当时的心情不允许我这么细心啊,咳咳
    这里打个广告!强烈建议各位C/C++ develpoers,去仔细读一下程序员的自我修养这本书,真的受益匪浅。
    2、由于没有链接静态库而报错(同上,暂时只有傻瓜式解决办法,使用makefile解决此问题请看我之后的博客:在makefile中链接静态库

    C:\Users\11955\AppData\Local\Temp\ccLmGIL8.o:main.cpp:(.text+0xb): undefined reference to `__imp_Py_Initialize'
    C:\Users\11955\AppData\Local\Temp\ccLmGIL8.o:main.cpp:(.text+0x20): undefined reference to `__imp_PyRun_SimpleStringFlags'
    C:\Users\11955\AppData\Local\Temp\ccLmGIL8.o:main.cpp:(.text+0x35): undefined reference to `__imp_PyRun_SimpleStringFlags'
    C:\Users\11955\AppData\Local\Temp\ccLmGIL8.o:main.cpp:(.text+0x3e): undefined reference to `__imp_Py_Finalize'
    C:\Users\11955\AppData\Local\Temp\ccLmGIL8.o:main.cpp:(.text+0x56): undefined reference to `__imp_Py_Initialize'
    C:\Users\11955\AppData\Local\Temp\ccLmGIL8.o:main.cpp:(.text+0x76): undefined reference to `__imp_PyImport_ImportModule'
    C:\Users\11955\AppData\Local\Temp\ccLmGIL8.o:main.cpp:(.text+0x91): undefined reference to `__imp_PyObject_GetAttrString'
    C:\Users\11955\AppData\Local\Temp\ccLmGIL8.o:main.cpp:(.text+0xb0): undefined reference to `__imp_PyEval_CallObjectWithKeywords'
    C:\Users\11955\AppData\Local\Temp\ccLmGIL8.o:main.cpp:(.text+0xb9): undefined reference to `__imp_Py_Finalize'
    

    解决办法:链接静态库,我把D:\Python\Python37\libs这个文件夹复制到了工作空间的文件夹下,为了方便链接直链接该文件夹下所有文件。

     g++ -o main .\main.cpp -L .\libs\*
     .\main.exe
    

    在这里插入图片描述

    VS2019中配置环境

    1、step1

    首先明确,如果你安装的python是64位的,建议把VS 该项目下的解决方案平台改为x64,并且环境是在特定的解决方案配置下(Debug/Release)进行的,所以不要配置在Debug,却在Release调用Python.h,这样肯定会报错:无法打开Python.h

    2、step2

    右键project打开属性,在配置属性 - C/C++ - 常规 - 附加包含目录下添加:

    D:\Python\Python37\include
    

    配置属性 - VC++目录 - 库目录下添加:

    D:\Python\Python37\libs
    

    3、测试

    C++代码和python代码同上,到此我们还没有在VS项目中添加python代码,只需要将hello.py复制到main.cpp所在目录即可。

    4、问题汇总

    1、如果遇到Link110:无法打开python36_d.lib(或者python**_d.lib),在你的python/libs目录下会发现没有这个静态库文件,这时候最简单的做法就是拷贝复制一份python36.lib,并重命名为python36_d.lib
    2、如果出现的错误:

    Traceback (most recent call last):
      File "<string>", line 1, in <module>
    NameError: name 'hello' is not defined
    

    这是由于没有找到hello.py文件,解决方案:在初始化python解释器以后添加以下两行代码,用于指定模块的路径:

    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append('./')");
    

    3、如果还有错误,请参考C++调用python

    5、完整的cpp代码

    //#include "D:\Python\Python37\include\Python.h"
    //当然,绝对路径永远不会失效!^o^
    #include <Python.h>
    #include <iostream>
    using namespace std;
    void cython1()
    {
        Py_Initialize();                          //初始化python解释器,告诉编译器要用的python编译器
        PyRun_SimpleString("import sys");
        PyRun_SimpleString("sys.path.append('./')");
        PyRun_SimpleString("import hello");       //调用python文件
        PyRun_SimpleString("hello.printHello()"); //调用上述文件中的函数
        Py_Finalize();                            //结束python解释器,释放资源
    }
    
    void cython2()
    {
        Py_Initialize();
        PyObject* pModule = NULL;
        PyObject* pFunc = NULL;
        PyRun_SimpleString("import sys");
        PyRun_SimpleString("sys.path.append('./')");
        pModule = PyImport_ImportModule("hello");              //这里是要调用的文件名
        pFunc = PyObject_GetAttrString(pModule, "printHello"); //这里是要调用的函数名
        PyEval_CallObject(pFunc, NULL);                        //调用函数
        Py_Finalize();
    }
    
    int main()
    {
        int select;
        cin >> select;
        select == 1 ? cython1() : cython2();
        return 0;
    }
    

    Linux中配置环境

    其实这一部分有点多余,因为我在VScode下编程也采用gcc/g++编译器,linux与之相同,所以遇到的问题也是一致的,都是没有办法直接#include<Python.h>。以Ubuntu 18.04.4 LTS为例:

    1、step1

    前提是你已经安装了g++,如果使用g++ -v查看版本无果,采用以下命令安装套件:

    sudo apt-get install build-essential
    

    首先查看自己的python版本以及位置,位置用于代码编写调用头文件,版本用于编译g++命令的指示链接库。由于ubuntu18.04自带python3,所以命令中都采用了python3而不是python:

    python3 -V
    >Python 3.6.9
    
    which python3
    >/usr/bin/python3
    

    2、step2

    找到版本以及位置,在C++代码中采用绝对路径的方法调用Python.h

    #include "/usr/include/python3.6/Python.h"
    //或者
    #include <python3.6/Python.h>
    

    同时也要在初始化python解释器以后添加以下两行代码,用于指定模块的路径:

    Py_Initialize();
    PyRun_SimpleString("import sys"); // add 1
    PyRun_SimpleString("sys.path.append('./')"); //add 2
    

    3、测试

    同样在编译时需要指定静态链接库,不然的话就用makefile吧~
    注意python的版本:

    g++ -o main main.cpp -lpython3.6m
    ./main
    

    注意,也可以采用编译时包含头文件的方式,这样就不用在代码中调用头文件了,不推荐(这样的命令我要它有何用):

    g++ -o main main.cpp -lpython3.6m -I /usr/include/python3.6
    ./main
    

    4、疑问

    1、为什么VScode不用再代码中指定python文件的路径,而VS和Linux中都需要?
    2、为什么在VS2019和Linux中都不用绝对路径就可以调用Python.h文件,而在VScode中却没有作用?
    还望与各位朋友探讨。

    END

    展开全文
  • C/C++调用python接口入门(1-全是坑)

    千次阅读 2020-04-17 09:10:17
    文章目录从一个简单的python爬虫开始~~正头戏C++调用python接口~~(误)但被开篇劝退那些劝退的开头几坑总结python37_d.lib链接错误error LNK2001: 无法解析的外部符号 __imp_PyObject_GetAttrString 等一大串报错真_...

    @Coding Environment VS2019 Python3.7 Qt5.1
    这是我第一次python c/c++接口尝试,面对网上资源不全,版本不一,官网API文档阅读困难,特写此篇,希望能给一些人避开那些恶心的坑.

    从一个简单的python爬虫开始

    爬取有道词典的包,来翻译文件,代码如下:

    // Python3.7 at Pycharm
    #coding=utf-8
    
    from urllib import request
    from urllib import parse
    import json
    #这是一个接口函数,输入data来进行翻译,在此不再过多解释,返回值为有道的翻译内容
    def fanyi_youdao_API_21(data,from_d = 'AUTO',to_d = 'auto'):
        Request_URL="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
        form_data={}
        form_data['i']=data
        form_data['from'] = from_d
        form_data['to'] = to_d
        form_data['smartresult'] = 'dict'
        form_data['doctype']='json'
        form_data['version']='2.1'
        form_data['keyfrom']='fanyi.web'
        form_data['action']='FY_BY_CLICKBUTTION'
        form_data['typoResult']='false'
        data=parse.urlencode(form_data).encode('utf-8')
        response=request.urlopen(Request_URL,data)
        html=response.read().decode('utf-8')
        translate_results = json.loads(html)
        translate_result = translate_results["translateResult"][0][0]['tgt']
        return translate_result
    # c = fanyi_youdao_API_21('hello')
    # print("翻译结果:%s" % c)
    

    在这里插入图片描述

    正头戏C++调用python接口(误)但被开篇劝退

    好了正片来了,我们希望能用c/c++调用这个接口函数,来实现翻译的目的
    于是乎我去翻了官网的API文档API
    原来是这样
    #define PY_SSIZE_T_CLEAN
    #include <Python.h>
    就可以了,但是vs里显然没有这样的库.翻了翻文件,在python的文件目录里找到了Python.h
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    简单包含目录嘛试着跑一下:不行python37_d.lib链接错误
    找啊找啊找资料,终于找到一个靠谱的
    修改完毕,什么还是没有lib?
    这时要在配置里附加lib的位置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    好的添加完成,终于可以了吧???
    在这里插入图片描述
    好的,报错了,再见
    怎么可能这么放弃了呢?
    在笔者找了好久后终于找到问题:64位系统安装64位python,必须在x64环境下编译
    所以只要改成在这里插入图片描述就可以了
    在这里值得一说的是,改完环境前面的几步全!部!要!再!弄!一!次!

    那些劝退的开头几坑总结

    python37_d.lib链接错误

    参考1
    https://blog.csdn.net/weixin_40127330/article/details/99731879?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

    error LNK2001: 无法解析的外部符号 __imp_PyObject_GetAttrString 等一大串报错

    把编程环境切换为64位的
    在这里插入图片描述

    真_正头戏C++调用python接口

    先看一篇简单的代码

    #include <stdio.h>
    #include <Python.h>
    #include <iostream>
    using namespace std;
    int main() {
    
        // 初始化Python虚拟机
        Py_Initialize();
        // 判断Python虚拟机是否成功
        if (Py_IsInitialized() == 0) {
            cout<<"fal to initialize Python"<<endl;
            return -1;
        }
        cout << "server start" << endl;
    
        // 退出Python虚拟机
        Py_Finalize();
        cout << "server end" << endl;
        return 0;
    }
    

    在这里插入图片描述
    一切正常,我们在c\c++中已经可以调用python虚拟机了,也说明前面的坑顺利跨过.

    python的数据:PyObject

    PyObject是什么?就是存放python数据的类,每个指向Python对象的指针都可以转换为PyObject *.知道这些就可以了,我们是要看怎么用,而不是怎么实现,怎么实现和详细功能可以等基础了解清楚后再了解.
    创建的方式很简单:

    PyObject* a;
    

    至于PyObject对象怎么创建python.h为我们提供了一种函数:
    Py_BuildValue
    他可以使用其将C的所有基本数据类型转换成Python可访问的数据类型。

    类型互相转化:

    (依旧用上一段代码,加了几行)

    #include <stdio.h>
    #include <Python.h>
    #include <iostream>
    using namespace std;
    int main() {
    
        // 初始化Python虚拟机
        Py_Initialize();
        // 判断Python虚拟机是否成功
        if (Py_IsInitialized() == 0) {
            cout<<"fal to initialize Python"<<endl;
            return -1;
        }
        cout << "server start" << endl;
        PyObject* p_val1 = Py_BuildValue("i", 233);
        int c_val = PyLong_AsLong(p_val1);
        // 退出Python虚拟机
        cout << c_val << endl;
        Py_Finalize();
        cout << "server end" << endl;
        return 0;
    }
    
    PyObject* p_val1 = Py_BuildValue("i", 233);//i表示int,233是(int)233,转化为PyObject
    int c_val = PyLong_AsLong(p_val1);//将PyObject转化为int
    

    这两行是两种类型的互相转化
    同理long int 只要将i改为l,PyLong_AsLong改为PyLong_AsLongLong即可.如下表

    类型 第一个参数 对应的转化
    int Py_BuildValue(“i”, 233) PyLong_AsLong(p_val1)
    unsign int Py_BuildValue(“I”, 233)大写i PyLong_AsUnsignedLong(p_val1)
    long long Py_BuildValue(“l”, 233333333333)小写L PyLong_AsLongLong(p_val1)
    float/double Py_BuildValue(“d”, 233.3) PyFloat_AsDouble(p_val1)
    bool Py_BuildValue(“b”, true) PyInt_AsLong(p_val1)

    对于的转化方式除了这种以外还可以用PyArg_Parse()来实现,但是要在堆空间里事先声明指针结构
    不过string有些不同(尤其是python3):
    网上资料十分散乱而且还都是python2的.我足足找了2小时资料,终于有了办法
    虽然不是最好的,但是是可行的

        const char* pstr = "this is a test";
        PyObject* py_str = Py_BuildValue("s", pstr);   // Python 字符串对象
        PyObject* u_str = PyCodec_Encode(py_str, "utf-8",NULL);//Python unicode 对象
        char* c_pstr = PyBytes_AsString(u_str);   // 转成C的字符指针
        printf("c_pstr = %s\n", c_pstr);
    

    不过要说一点就是 这种代码不支持中文
    这里是详细的中文参数的教程

    调用函数

    好了基础就是这些,下面我们开始真正的调用函数
    函数的标准调用如下:

    	int x;//x为参数数目
    	PyObject* pArgs = PyTuple_New(x);
    	PyTuple_SetItem(pArgs, 0, y);参数为y,设置第一个参数 y为PyObject对象
    	...//这里是设置参数
    	PyObject* pReturn = PyEval_CallObject(pFunc, pArgs);//preturn为返回值
    

    对于这种简单的函数

    def callTest(string):
        print('String is ->:' + string)
        #返回结果
        reStr = 'call Test Succeed'
        return reStr
        ```
        调用代码如下
        ```
        
    #include <Python.h>
    #include <iostream>
    using namespace std;
    int main() {
    
        // 初始化Python虚拟机
        PyObject* pmod, * pfun, * pargs, * preturn;
        Py_Initialize();
        // 判断Python虚拟机是否成功
        if (Py_IsInitialized() == 0) {
            cout<<"fal to initialize Python"<<endl;
            return -1;
        }
        cout << "server start" << endl;
    
        PyRun_SimpleString("import sys");
        PyRun_SimpleString("sys.path.append('.')");
        pmod = PyImport_ImportModule("my_main");//.py文件
        if (!pmod) { cout << "module import error" << endl; }
    
        pfun = PyObject_GetAttrString(pmod, "callTest");//函数名
        if (!pfun)cout << "cfun load errot" << endl;
    
        pargs = PyTuple_New(1);
        PyObject* o1 = PyCodec_Encode(Py_BuildValue("s", "test"), "utf-8", NULL);
        PyTuple_SetItem(pargs, 0, o1);
        preturn = PyObject_CallObject(pfun, pargs);
        char* result = new char[20];
        PyArg_Parse(preturn, "s", &result); 
        cout << result <<endl;
        // 退出Python虚拟机
        Py_Finalize();
        cout << "server end" << endl;
        return 0;
    }
    

    中文来了

    但是上边的函数但凡有中文返回值或者中文参数就会报错或者乱码
    解决方式这里是详细的中文参数的教程
    需要Qt库这里是VS导入的教程
    最好我们的代码如下:

    #include <stdio.h>
    #include <Python.h>
    #include <iostream>
    #include "GBK.h"
    
    using namespace std;
    int main() {
    
        // 初始化Python虚拟机
        PyObject* pmod, * pfun, * pargs, * preturn;
        Py_Initialize();
        // 判断Python虚拟机是否成功
        if (Py_IsInitialized() == 0) {
            cout<<"fal to initialize Python"<<endl;
            return -1;
        }
        cout << "server start" << endl;
    
        PyRun_SimpleString("import sys");
        PyRun_SimpleString("sys.path.append('.')");
        pmod = PyImport_ImportModule("my_main");
        if (!pmod) { cout << "module import error" << endl; }
    
        pfun = PyObject_GetAttrString(pmod, "fanyi_youdao_API_21");
        if (!pfun)cout << "cfun load errot" << endl;
    
        pargs = PyTuple_New(1);
        PyObject* o1 = PyCodec_Encode(Py_BuildValue("s", "Time is the only true unit of measure"), "utf-8", NULL);
    
        PyTuple_SetItem(pargs, 0, o1);
        preturn = PyObject_CallObject(pfun, pargs);
        char* result = new char[20];
        PyArg_Parse(preturn, "s", &result);
        string reStr = GBK::FromUnicode(result);
    
        cout << reStr <<endl;
        // 退出Python虚拟机
        Py_Finalize();
        cout << "server end" << endl;
        return 0;
    }
    

    结果如下:
    运行结果
    更改为中文同样是可以的

        PyObject* o1 = PyCodec_Encode(Py_BuildValue("s", "时间是衡量一切的标准。"), "utf-8", NULL);
    

    这里笔者没有对中文字符decode但是这并不是重点.二者是等价的.
    在这里插入图片描述
    到此就是本节的全部内容了,python的c++接口确实好用,但是还是推荐用Json来数据传输.毕竟c++接口太复杂了,一时间根本无法掌握,各种帖子教程版本不一,很难一时间跑到正确的代码.
    所以说不同语音的交互要尽量使用文件交互,不要想着拿接口

    展开全文
  • C/C++调用Python接口

    2020-04-26 12:21:46
    1.环境搭建 这个一个网上有很多参考,不在赘述了。 主要就是把Python的库添加到当前的...2)关于如何调用Python中的类,都在这里。 网上有很多很多文章都没有讲到一点,如何才能调用到Python类的初始化函数。 htt...

    1.环境搭建
    这个一个网上有很多参考,不在赘述了。
    主要就是把Python的库添加到当前的编译环境中。

    2.如何调用
    1)关于引用计数相关的内容都在这里了。
    https://blog.csdn.net/kof2019/article/details/77824473
    2)关于如何调用Python中的类,都在这里。
    网上有很多很多文章都没有讲到一点,如何才能调用到Python类的初始化函数。
    https://blog.csdn.net/hnlylyb/article/details/89498651

    3)关于如何传递字典给Python接口的内容都在这里。
    https://blog.csdn.net/chaoenhu/article/details/96425562
    http://www.voidcn.com/article/p-sikuabku-bvs.html

    仅供参考。

    展开全文
  • Q1:无法调用三方库? A1://换成你自己的PYTHONPATH,Mac并且用brew安装的不用换了 PyRun_SimpleString("sys.path.append('/usr/local/lib/python2.7/site-packages')");Q2:Python脚本文件放在哪? A2:随意...

    Q1:无法调用三方库?
    A1:

    //换成你自己的PYTHONPATH,Mac并且用brew安装的不用换了
    PyRun_SimpleString("sys.path.append('/usr/local/lib/python2.7/site-packages')");

    Q2:Python脚本文件放在哪?
    A2:随意你喜欢的地方,pName = PyString_FromString(“”);是用import来获取文件的,所以你只要在前面调用下列语句就好。

        PyRun_SimpleString("sys.path.append('你自己的路径')");
    
    展开全文
  • 文章目录c++ 调用 Python安装Python写一个简单的python函数写c++ 程序第一步 添加python的声明 和设置Python的安装路径第二步:初始化python接口第三步:初始化python系统文件路径,保证可以访问到 .py文件第四步:...
  • 为实现在C++中调用 Numpy接口下面对C++调用Python进行讨论, 这里作为基础部分暂时不涉及对于Numpy的相应接口的调用,而仅仅是Python内置数据结构。 使用GCC配置 C++ 调用 Python 接口的方法 在CodeBlocks中...
  • C++调用python

    万次阅读 多人点赞 2015-10-31 13:35:39
    C++调用python C++中调用Python脚本的意义就不讲了,至少你可以把它当成文本形式的动态链接库,需要的时候还可以改一改,只要不改变接口, C++的程序一旦编译好了,再改就没那么方便了。 皮皮blog VS中编译运行 ...
  • c++调用python函数接口

    千次阅读 2013-04-24 17:19:25
    其实,C++调用Python有两种方式,我前面介绍了第一种方式:通过找到Python模块,类,方法,构造参数来调用。第二中方式,就是通过构造出一个Python的脚本,用python引擎来执行。第一种方式可能更为优雅,符合大多数...
  • C++调用Python总结

    万次阅读 热门讨论 2019-06-20 17:59:38
      最近要通过开源数据集测试模型,官方标签有的不适合整理为C++格式进行处理,因此准备通过与Python混合编程实现。...  参考该博文,C++调用Python主要使用到Python安装路径下的include、libs、该目录下相...
  • C++调用Python接口

    千次阅读 2015-12-05 21:04:41
    参照如下博客可以看看写好的cpp 在G++中怎么编译: ...参考如下博客可以看看怎么在VS的项目中配置调用python接口 http://blog.csdn.net/c_cyoxi/article/details/23978007 参考如下地址可以解决VS中没有Pyth
  • C++调用python脚本

    2020-06-19 15:51:57
    C++调用python的脚本 一. 为什么? 缘由:用python写了机器学习的模型,项目工程代码是C++写得,所以在调用时,想通过C++调用python脚本,用c++获取返回值。(然后就是一个接着一个的坑。。。。) 二. 环境 环境win...
  • 文章目录python代码C++代码 参考:1 参考:2 C++/Python如何在C++中使用一个Python类? (Use Python-defined class in C++) python代码 # test_python.py def hello(s): print("python: hello: %s " %s) ...
  • QT C++调用python

    2019-04-29 23:07:01
    一、说明 QT C++调用python的环境搭建 与 标准C++调用python大致相同,本文不再...由于QT C++库的特殊性,导致按照标准C++调用python环境搭建后出现一些奇怪的编译或者运行报错,本文中笔者将叙述如何纠正。 二...
  • C++调用Python3.7

    千次阅读 2019-08-19 16:42:34
    C++调用Python3.7前言配置环境第一步新建一个控制台项目,修改属性页第二步修改Python安装目录下文件代码测试测试用Python3语法输出“Hello World!”测试用Python文件输出“Hello World!”结尾引用 前言 最近在做...
  • C++ 调用Python

    2015-08-24 15:42:57
    C++ 调用Python前提 已经配好Python环境。在c++项目中引入 包含目录:C:\Python27\include 库目录: C:\Python27\libs 在源代码加入头文件 : #include 通用撸码步骤 第一步:初始化Python 第二步:引入Python...
  • c++ 调用python

    2020-04-15 17:51:43
    C++ 调用Python脚本 本人环境: Windows10; python3.7.4; visual studio 2019; 安装python,opencv(如果用到的话),以及将二者目录添加到vs中的包含目录和库目录就不再说了。教程一大堆,自己配置好。以下...
  • C++调用Python实例

    千次阅读 2017-11-13 17:27:24
    C++调用Python实例
  • C++调用python3

    千次阅读 2017-03-21 20:16:31
    1. 配置 项目–>属性–>vc++目录–>包含目录 添加python安装目录中include目录 项目–>属性–>vc++目录–>库目录 ...准备参考以下做,但是这些都是C++调用python2 C++ 调用 python C++中嵌入python程
  • C++调用Python3.5

    千次阅读 2018-04-20 09:45:11
    前一段时间总结了C++调用Python2.7,现在由于使用了TensorFlow3,Python从2.7版本变成了3.5,在调用时,本来以为Python2.7和Python3.5没有什么区别,其实还是有点差距的,坑了我好久! ①VS环境配置 ②调用有参数 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 133,846
精华内容 53,538
关键字:

c++调用python接口

python 订阅
c++ 订阅