C C 中如何呼叫Python方法

2021-04-01 23:13:37 字數 1338 閱讀 1745

c/c++對python的呼叫層次可以分為三個層次, (1) 高層次的呼叫, (2)純python呼叫, (3) python方法的擴充套件(也就使向python輸出呼叫函式). 這裡我主要討論(1)和(2)兩種方法.

1 高層次的呼叫

這是最簡單的一種在c/c++中呼叫python的方法. 它直接的呼叫python提供的c呼叫介面函式, 這些函式主要有: pyrun_******string(), pyrun_******stringflags(), pyrun_******file(), pyrun_******fileex()和pyrun_******fileexflags()幾個. 函式的具體用法參考python的文件.

這裡舉個例子來說明這種層次的用法:

由這個例子可見, 在c/c++中呼叫python的內容非常簡單, 只要構造乙個簡單的python呼叫字串.這裡要注意的就是, python呼叫串語句之間要用'/n'來分開, 且語句之間不能有空格, 如上面的python字串不能寫成: "import sys/n print sys.path" , 否則要出錯的.

// c/c++ 中 python 呼叫必須的標頭檔案

#include

//int main(int argc, char* argv)

// 清除python解析環境

py_finalize();

}//

以上的例子也表明了在c/c++中呼叫python的基本結構, 就是

(1) 先初始化python環境然: py_initialize()

(2) 具體對python的操作

(3) 清除python環境

更複雜的乙個使用高層呼叫的例子, 這個例子用pyrun_******file的例子.

這裡值得注意是, 在window中:

(1) 鏈結debug版本的時候會自動鏈結pythonxx(_d).lib庫, pythonxx_d安裝時是沒有安裝的, 所以要顯示的指定鏈結pythonxx.lib庫, 不知道vc6.0為什麼還會去找pythonxx_d.lib, 在vs7.0不會.

(2) 編譯時要以 /md(多執行緒dll) 選項編譯(不論時debug版本還時release版本都一樣).

以上我在vc7.0中可以正確的執行, 在vc6.0這樣還不行, 可能和我使用的版本有關係(我用的版本是:python24.lib). 有知道的請賜教!!

// c/c++ 中 python 呼叫必須的標頭檔案

#include

//int main(int argc, char* argv)

fclose(fp);

// 清除python解析環境

py_finalize();

}2 純python呼叫

Python呼叫C C 的種種方法

摘要 python是解釋性語言,底層就是用c實現的,所以用python呼叫c是很容易的,下面就總結一下各種呼叫的方法,給出例子,所有例子都在ubuntu9.10,python2.6下試過.1.python是解釋性語言,底層就是用c實現的,所以用python呼叫c是很容易的,下面就總結一下各種呼叫的方...

Python類方法如何呼叫?

類的方法的定義 1.def fun name self,pass 2.其中的引數 self 代表類的例項,在呼叫方法時由系統自動提供 3.方法定義時必須指明 self引數 類的方法的呼叫 與普通的函式呼叫類似 1.類的內部呼叫 self.方法 引數列表 2.在類的外部呼叫 例項.方法 引數列表 注意...

python 呼叫 C C 程式設計

p1 首先,先用c寫乙個簡單的函式 show.c include void showstring 這個函式是乙個最簡單的helloworld函式,幾乎所有程式語言教材都會以她作為第乙個例子 跑題了。我們需要做的是在乙個python指令碼中呼叫這個函式 show.py usr bin env pyth...