Python script代碼在C++中的使用方法
Python script代碼需要和很多種語言混用。其中C++就是相當(dāng)多的一個,下面我們就來看看如何才能在C++中順暢的使用Python script代碼。希望大家能在本文中找到自己的答案。
想要在c++ 中嵌入Python script 代碼, 除了自己寫腳本引擎外, lua, python 都可以在c++ 中使用, 另外 MonoBind, AngelScript library 都是一些c++ script library, 可以嵌入到c++ 中使用 .
今天在c++ 中試著嵌入 Python script代碼 (示例代碼在 Python-2.5.2\Demo\embed\ 下)
- #include <Python.h>
- int main(int argc, char *argv[])
- {
- // Py_NoSiteFlag = 1;
- // Py_SetPythonHome("D:\\usr\\Python"); // PYTHONHOME
- Py_Initialize();
- PyRun_SimpleString("from time import time,ctime\n"
- "print 'Today is',ctime(time())\n");
- Py_Finalize();
- return 0;
- }
在運行時可能會產(chǎn)生類似 'import site' failed; use -v for traceback 的錯誤, 原因是python 在import module 的時候的路徑問題. 有3種方法可以解決(以前通過設(shè)置環(huán)境變量 PYTHONPATH 好像在2.5 已經(jīng)無效了).
0. 取消注釋 Py_NoSiteFlag = 1;
這個只是取消import site , 當(dāng)然如果在代碼中要import 啥的話, 還是會出現(xiàn)錯誤的.
a. 設(shè)置環(huán)境變量 PYTHONHOME = D:\usr\Python
b. 在調(diào)用 Py_Initialize 之前調(diào)用函數(shù)
Py_SetPythonHome("D:\\usr\\Python"); // 參數(shù)是python 的安裝目錄
以上就是對Python script代碼在C++中的使用方法。希望大家有所收獲。
【編輯推薦】