三轮挎子摩托车:c++调用Python初次尝试之hellowrold
来源:百度文库 编辑:中财网 时间:2024/04/29 22:40:54
环境:windows xpsp2 VC++6.0 Python2.5.2
首先配置你的项目环境:(注:%Python%为你Python的安装目录)
把%Python%\include 配置到你的工程项目的
Project Settings——C/C++——Category——Preprocessor——Additional include directories
把 %Python%libs配置到你的工程项目的
Project Settings——Link ——Category——Input——Additionallibrary path
此时,如果你VC++的Build是Release版的则没什么需要配置的了
如果是DeBug版本,则会出现一个问题:cannot open file"python25_d.lib"
因为python没有提供debug版的python25_d.lib文件,可以生成的,网上也有,可是我没找到,谁找到了给我个啊。
此时有两种解决方法:
1.直接把%Python%libs里的python25.lib文件复制一份,改名为:python25_d.lib
2.修改%Python%\include里的pyconfig.h文件。大概在293行,把里面的python25_d.lib改为python25.lib,这里是一个判断,你也可去去掉那段判断,直接改为使用python25.lib
当然你可以选择版本,Build——Configuration选择,或者在工具栏空白处点右键,选择Build工具箱,可以直观的选择。
至此所有配置工作就做完了。
然后编写python文件 helloworld.py
写一个简单的,就一个函数Hello:
引用:
#helloworld.py
def Hello():
print"Hello, world!"
把这个文件可以放到工程文件夹里。
然后编写cpp文件 py.cpp
引用:
#include//前面所做的一切配置都是为了调用这个头文件和相关库
int main()
{
Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化
PyObject * pModule = NULL;//声明变量
PyObject * pFunc = NULL;// 声明变量
pModule =PyImport_ImportModule("helloworld");//这里是要调用的文件名
pFunc= PyObject_GetAttrString(pModule, "Hello");//这里是要调用的函数名
PyEval_CallObject(pFunc, NULL);//调用函数
Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。
return 0;
}
至此,一个简单的Python嵌入c++的例子就完成了。
你会发现在工程目录里生成了一个字节编译的文件helloworld.pyc,py.exe运行的时候,正式调用这个文件的。所以如果你要单独运行py.exe,必须和helloworld.pyc一起移动,不然运行出错。
至于如何最终合成为一个exe文件,我也在探索中。菜鸟了,和大家一起进步。谁知道也不妨说来听听。
其实运行一个python最简单的方式莫过于直接执行Python语句了:
引用:
PyRun_SimpleString("import sys\n""print 100+200\n");
就这么简单,呵呵。试试吧。
最后附上我测试成功的项目。注意修改你自己的python的安装目录。
请去http://www.youxio.com/bbs/thread-3969-1-1.html 下载
首先配置你的项目环境:(注:%Python%为你Python的安装目录)
把%Python%\include 配置到你的工程项目的
Project Settings——C/C++——Category——Preprocessor——Additional include directories
把 %Python%libs配置到你的工程项目的
Project Settings——Link ——Category——Input——Additionallibrary path
此时,如果你VC++的Build是Release版的则没什么需要配置的了
如果是DeBug版本,则会出现一个问题:cannot open file"python25_d.lib"
因为python没有提供debug版的python25_d.lib文件,可以生成的,网上也有,可是我没找到,谁找到了给我个啊。
此时有两种解决方法:
1.直接把%Python%libs里的python25.lib文件复制一份,改名为:python25_d.lib
2.修改%Python%\include里的pyconfig.h文件。大概在293行,把里面的python25_d.lib改为python25.lib,这里是一个判断,你也可去去掉那段判断,直接改为使用python25.lib
当然你可以选择版本,Build——Configuration选择,或者在工具栏空白处点右键,选择Build工具箱,可以直观的选择。
至此所有配置工作就做完了。
然后编写python文件 helloworld.py
写一个简单的,就一个函数Hello:
引用:
#helloworld.py
def Hello():
print"Hello, world!"
把这个文件可以放到工程文件夹里。
然后编写cpp文件 py.cpp
引用:
#include
int main()
{
Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化
PyObject * pModule = NULL;//声明变量
PyObject * pFunc = NULL;// 声明变量
pModule =PyImport_ImportModule("helloworld");//这里是要调用的文件名
pFunc= PyObject_GetAttrString(pModule, "Hello");//这里是要调用的函数名
PyEval_CallObject(pFunc, NULL);//调用函数
Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。
return 0;
}
至此,一个简单的Python嵌入c++的例子就完成了。
你会发现在工程目录里生成了一个字节编译的文件helloworld.pyc,py.exe运行的时候,正式调用这个文件的。所以如果你要单独运行py.exe,必须和helloworld.pyc一起移动,不然运行出错。
至于如何最终合成为一个exe文件,我也在探索中。菜鸟了,和大家一起进步。谁知道也不妨说来听听。
其实运行一个python最简单的方式莫过于直接执行Python语句了:
引用:
PyRun_SimpleString("import sys\n""print 100+200\n");
就这么简单,呵呵。试试吧。
最后附上我测试成功的项目。注意修改你自己的python的安装目录。
请去http://www.youxio.com/bbs/thread-3969-1-1.html 下载
初次尝试文言文 给点建议哦!!!!!!!!!!!!!!!!!!!!!!!!!!
hell !!!!
什么是Python, C, Perl, and LISP?
什么是Python, C, Perl, and LISP??????????
饺子馅怎么弄好吃?初次尝试```肉馅的~
C函数调用之判断举例(东北大学C语言作业)
地狱之门:伦敦(Hell gate : London),我会取名为:?????
vb 调用 C
c中调用文件
Python 语法问题:怎么实现以下 C 代码?
python, java, C ,perl, 和 Lisp 谁介绍一下啊
紧急求助“尝试运行C:\PROGRA~
c语言函数调用规则
C#实现网络搜索引擎调用
c语言调用exe文件
C语言如何调用函数
c语言 函数调用问题
如何asp调用tubro C
C语言函数调用问题
C/C++ 调用 ASM,
c语言调用DOS命令
rs记录集之调用
Python,Java,C/C++,Perl和LISP)哪种比较适合初学者?
共和国之辉"what's the hell was that"这张图在哪下载?