這次主要記錄在windows下嵌入python解釋器的過程,程序沒有多少,主要是頭文件與庫文件的提取。
程序平臺:windows10 64 bit、 Qt 5.5.1 MSVC 2013 32 bit 、 python 3.7.4 32 bit
在ubuntu和windows下使用C/C++嵌入Python是有些不同的,ubuntu下可以使用對應命令來獲取python配置信息,windows下直接鏈接對應庫文件與頭文件即可。
通過對python解釋器的嵌入,我們可以自己做一個python編輯器,在內部可以定義自己的包;在運行時候python腳本的編寫就相當於一個隨時可變而又無需編譯的動態庫了。當然,有點還有很多,這種C/C++嵌入腳本語言的應用在遊戲上也十分常用。好了,下面簡單說下嵌入的流程。
- Python安裝包下載
我是直接在官網上下載的,Downloads-->>Python3.7.4。
- 提取庫文件與頭文件
安裝完的文件如下圖,其中include文件夾裏面是頭文件,python37.dll是我們所需要的動態鏈接庫,就像linux下的.so文件一樣。
- 在Qt下嵌入python
我使用的是Qt的控制檯程序,也就是C++嵌入python。
①pro文件中鏈接庫
Qt pro中文件如圖:
注意:雖然系統是64位的,但是Qt與python都是32位的
②在C++程序中調用python
在程序中調用python語句分以下幾個步驟
- 包含頭文件
- 初始化python解釋器
- 使用C接口運行python語句
- 調用完成後釋放資源。當然也可以再構造函數中初始化一次,在析構函數 中再釋放資源。
- 程序運行結果
最後再說些其他的:在嵌入python中有以下幾個問題要考慮:
①python腳本的靜態語法檢查與運行中錯誤的輸出
②python輸出信息重定向到宿主程序
③如何停止、暫停(鉤子函數)正在運行的python腳本
④當運行python阻塞接口時,停止會怎樣?
⑤python腳本中有耗時操作,需要運行到線程或進程中
願大家:
擁有夢想、實現價值
我是大賀,歡迎大家一起交流!