這次主要記錄在windows下嵌入 python 解釋器的過(guò)程,程序沒(méi)有多少,主要是頭文件與庫(kù)文件的提取。
程序平臺(tái):windows10 64 bit、 Qt 5.5.1? MSVC? 2013 32 bit?? 、 python 3.7.4? 32 bit
在ubuntu和 windows 下使用 C/C++ 嵌入 Python 是有些不同的, ubuntu 下可以使用對(duì)應(yīng)命令來(lái)獲取 python 配置信息, windows 下直接鏈接對(duì)應(yīng)庫(kù)文件與頭文件即可。
通過(guò)對(duì)python解釋器的嵌入,我們可以自己做一個(gè) python 編輯器,在內(nèi)部可以定義自己的包;在運(yùn)行時(shí)候 python 腳本的編寫(xiě)就相當(dāng)于一個(gè)隨時(shí)可變而又無(wú)需編譯的動(dòng)態(tài)庫(kù)了。當(dāng)然,有點(diǎn)還有很多,這種 C/C++ 嵌入腳本語(yǔ)言的應(yīng)用在游戲上也十分常用。好了,下面簡(jiǎn)單說(shuō)下嵌入的流程。
1. Python 安裝包下載
我是直接在官網(wǎng)上下載的,Downloads-->>Python3.7.4。
2.? 提取庫(kù)文件與頭文件
安裝完的文件如下圖,其中 include 文件夾里面是頭文件, python37.dll 是我們所需要的動(dòng)態(tài)鏈接庫(kù),就像 linux 下的 .so 文件一樣。
3. 在Qt下嵌入 python
我使用的是Qt的控制臺(tái)程序,也就是 C++ 嵌入 python 。
① pro 文件中鏈接庫(kù)
Qt pro中文件如圖:
注意:雖然系統(tǒng)是64位的,但是 Qt 與 python 都是 32 位的
②在 C++ 程序中調(diào)用 python
在程序中調(diào)用python語(yǔ)句分以下幾個(gè)步驟
1> 包含頭文件
2> 初始化python解釋器
3> 使用C接口運(yùn)行 python 語(yǔ)句
4> 調(diào)用完成后釋放資源。當(dāng)然也可以再構(gòu)造函數(shù)中初始化一次,在析構(gòu)函數(shù)中再釋放資源。
4.? 程序運(yùn)行結(jié)果
最后再說(shuō)些其他的:在嵌入python中有以下幾個(gè)問(wèn)題要考慮:
① python 腳本的靜態(tài)語(yǔ)法檢查與運(yùn)行中錯(cuò)誤的輸出
② python 輸出信息重定向到宿主程序
③如何停止、暫停 ( 鉤子函數(shù) ) 正在運(yùn)行的 python 腳本
④當(dāng)運(yùn)行 python 阻塞接口時(shí),停止會(huì)怎樣?
⑤ python 腳本中有耗時(shí)操作,需要運(yùn)行到線程或進(jìn)程中
總結(jié)
以上所述是小編給大家介紹的Windows 嵌入python解釋器的過(guò)程,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
