溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C++中怎么調(diào)用Python腳本

發(fā)布時(shí)間:2021-06-24 16:51:39 來源:億速云 閱讀:172 作者:Leah 欄目:編程語言

C++中怎么調(diào)用Python腳本,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

#test function   def add(a,b):       print "in python function add"       print "a = " + str(a)       print "b = " + str(b)       print "ret = " + str(a+b)       return     def foo(a):       print "in python function foo"       print "a = " + str(a)       print "ret = " + str(a * a)       return

把上面的PPython腳本代碼存為pytest.py接下來是c++ 的代碼:

#include "Python.h"   int main(int argc, char** argv)  {      // 初始化Python      //在使用Python系統(tǒng)前,必須使用Py_Initialize對其      //進(jìn)行初始化。它會(huì)載入Python的內(nèi)建模塊并添加系統(tǒng)路      //徑到模塊搜索路徑中。這個(gè)函數(shù)沒有返回值,檢查系統(tǒng)      //是否初始化成功需要使用Py_IsInitialized。       Py_Initialize();       // 檢查初始化是否成功      if ( !Py_IsInitialized() )       {          return -1;      }       // 添加當(dāng)前路徑      //把輸入的字符串作為Python代碼直接運(yùn)行,返回0      //表示成功,-1表示有錯(cuò)。大多時(shí)候錯(cuò)誤都是因?yàn)樽址?nbsp;     //中有語法錯(cuò)誤。      PyRun_SimpleString("import sys");      PyRun_SimpleString("sys.path.append('./')");      PyObject *pName,*pModule,*pDict,*pFunc,*pArgs;       // 載入名為pytest的腳本      pName = PyString_FromString("pytest");      pModule = PyImport_Import(pName);      if ( !pModule )      {          printf("can't find pytest.py");          getchar();          return -1;      }      pDict = PyModule_GetDict(pModule);      if ( !pDict )       {          return -1;      }       // 找出函數(shù)名為add的函數(shù)      pFunc = PyDict_GetItemString(pDict, "add");      if ( !pFunc || !PyCallable_Check(pFunc) )      {          printf("can't find function [add]");          getchar();          return -1;      }

看完上述內(nèi)容,你們掌握C++中怎么調(diào)用Python腳本的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI