Python script代码需要和很多种语言混用。其中C++就是相当多的一个,下面我们就来看看如何才能在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;
- }
在运行时可能会产生类似 'import site' failed; use -v for traceback 的错误, 原因是python 在import module 的时候的路径问题. 有3种方法可以解决(以前通过设置环境变量 PYTHONPATH 好像在2.5 已经无效了).
0. 取消注释 Py_NoSiteFlag = 1;
这个只是取消import site , 当然如果在代码中要import 啥的话, 还是会出现错误的.
a. 设置环境变量 PYTHONHOME = D:\usr\Python
b. 在调用 Py_Initialize 之前调用函数
Py_SetPythonHome("D:\\usr\\Python"); // 参数是python 的安装目录
以上就是对Python script代码在C++中的使用方法。希望大家有所收获。
【编辑推荐】