C、C++中如何成功嵌入python


  • 修改lib文件名稱,拷貝修改C:\Python27\libs目錄下原來的python27.lib為python27_d.lib

  • 包含頭文件在C:\Python27\include目錄下

  • 包含lib文件

  • 調用64位lib庫需要修改版本

最簡單的代碼:

 1 #include "stdafx.h"
 2 #include "python.h"
 3 
 4 
 5 int _tmain(int argc, _TCHAR* argv[])
 6 {
 7     Py_Initialize();
 8     PyRun_SimpleString("print 'hello world!' ");
 9     Py_Finalize();
10     getchar();
11     return 0;
12 }

以main.c 調用 hellWorld.py 函數為例進行說明。
       helloWorld.py 的內容很簡單只是定義了hello函數然后輸出“Hello World”
 
 
main.c 函數也比較簡單,主要是初始化python,以及導入python的模塊等
 
里面的Python_Initialize()主要是初始化python解釋器。
      Py_SimpleString("import sys")相當於在python中的import sys語句。
      Py_SimpleString("sys.path.append('./')")是將搜索路徑設置為當前目錄。
      Py_ImportModule("helloWorld")是利用導入文件函數將helloWorld.py函數導入。
      PyObject_GetAttrString(pModule, "hello")是在pyton引用模塊helloWorld.py中查找hello函數。
接着調用PyEval_CallObject(pFunc, NULL)調用hello函數。
      最后是清理python環境釋放資源。

http://blog.csdn.net/yelbosh/article/details/7495555
http://blog.csdn.net/taiyang1987912/article/details/44779719
http://blog.chinaunix.net/uid-20564848-id-73553.html
http://www.2cto.com/kf/201411/352264.html
http://www.cnblogs.com/linxr/archive/2011/07/22/2113843.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM