Python嵌入C/C+具有十分强大的运用功能介绍

开发 后端
C/C+具在实际的运用中具有十分强大的功能,而Python在实际应用中也具有十分简捷的功能,以下的文章就是对强两者的强强联合既Python嵌入C/C+的相关内容的介绍。

如果你想在Python嵌入C/C+的实际应用的过程中更好的了解其相关功能,你就可以浏览我们的文章对Python嵌入C/C+有深入的了解,以下是文章的相关内容的具体介绍,希望你会有所收获。

Python嵌入C/C+

在C/C++中嵌入Python,可以使用Python提供的强大功能,通过嵌入Python可以替代动态链接库形式的接口,这样可以方便地根据需要修改脚本代码,而不用重新编译链接二进制的动态链接库。

 高层次嵌入Python使用Python/C API可以在较高层次上嵌入Python。所谓的高层次嵌入主要是指程序与脚本间没有交互。在VC++ 6.0中新建一个空“Win32 Console Application”,在工程中新建一个C源文件。将如下所示代码添加到其中。

 

  1. #include <Python.h>int main(){ Py_Initialize(); /* 

Python解释器初始化

  1. */ PyRun_SimpleString("print 'hi,python!'"); /* 

运行字符串 */ Py_Finalize(); /* 结束Python解释器,释放资源

  1. */ return 0;} 

Python嵌入C/C+中需要编译工程,运行程序后输出如下所示。

 

  1. hi,python! 

可以看到程序很简单,只使用了3个函数。其中Py_Initialize函数的原型如下所示。

 

  1. void Py_Initialize() 

在嵌入Python脚本时必须使用该函数,它初始化Python解释器。在使用其他的Python/C API之前必须先调用Py_Initialize函数。其中PyRun_SimpleString函数用来执行一段Python代码。其函数原型如下所示。

 

  1. int PyRun_SimpleString(const char *command) 

在程序的***使用了Py_Finalize函数,其原型如下所示。

 

  1. void Py_Finalize() 

Py_Finalize函数用于关闭Python解释器,释放解释器所占用的资源。除了使用PyRun_SimpleString函数以外,还可以使用PyRun_SimpleFile()函数来运行“.py”脚本文件。其函数原型如下所示。

 

  1. int PyRun_SimpleFile
    ( FILE *fp, const char *filename) 

其参数含义如下。· fp:打开的文件指针。· filename:要运行的Python脚本文件名。在Windows下使用该函数时需要注意所使用的编译器版本。由于官方发布的Python是由Visual Studio 2003.NET编译的。如果使用其他版本的编译器,由于版本差异导致FILE的定义有所区别,因此使用其他版本的编译器会导致程序崩溃。

为了简便起见可以使用如下方式来代替PyRun_SimpleFile函数实现同样的功能。

  1. PyRun_SimpleString("execfile('file.py')"); 

 使用execfile运行Python脚本文件以上的相关内容就是对Python嵌入C/C+的相关实际应用方案的相关介绍。

【编辑推荐】

  1. Python os.walk 在遍历目录中的实际应用步骤
  2. 用Python操作文件如何查看目录内容的具体方法
  3. Python文件的详细信息的相关介绍与具体分析
  4. Python文件复制中如何复制相关文件的实际操作
  5. Python文件的详细信息的相关介绍与具体分析
责任编辑:佚名 来源: 博客园
相关推荐

2010-04-22 13:39:31

Oracle细粒度访问

2010-03-22 10:11:28

Python Libr

2010-03-26 10:05:22

Python嵌入CC++

2020-09-22 15:29:03

UnixC++C

2010-03-19 09:39:17

Python编程语言

2010-03-26 16:17:24

Python嵌入

2020-09-27 14:41:37

C语言编程语言计算机

2010-03-24 12:45:00

Python 嵌入

2010-03-26 11:00:55

Python嵌入CC++

2010-01-27 13:53:40

强大的CC++编译器

2019-03-19 15:25:47

toplip加密工具开源

2011-09-16 17:00:31

惠普激光打印机

2010-03-30 17:08:04

Oracle to_c

2020-11-26 14:05:39

C ++运算符数据

2010-03-19 14:19:58

Python正则表达式

2009-09-07 15:40:06

2010-03-26 10:46:20

Python嵌入CC++

2010-03-26 11:00:55

Python嵌入CC++

2010-03-26 09:48:43

Python嵌入C++

2023-12-08 13:19:00

前端Reactour流行库
点赞
收藏

51CTO技术栈公众号