这次主要记录在windows下嵌入 python 解释器的过程,程序没有多少,主要是头文件与库文件的提取。

程序平台:windows10 64 bit、 Qt 5.5.1  MSVC  2013 32 bit   、 python 3.7.4  32 bit

在ubuntu和 windows 下使用 C/C++ 嵌入 Python 是有些不同的, ubuntu 下可以使用对应命令来获取 python 配置信息, windows 下直接链接对应库文件与头文件即可。

通过对python解释器的嵌入,我们可以自己做一个 python 编辑器,在内部可以定义自己的包;在运行时候 python 脚本的编写就相当于一个随时可变而又无需编译的动态库了。当然,有点还有很多,这种 C/C++ 嵌入脚本语言的应用在游戏上也十分常用。好了,下面简单说下嵌入的流程。

1. Python 安装包下载

我是直接在官网上下载的,Downloads-->>Python3.7.4。

2.  提取库文件与头文件

安装完的文件如下图,其中 include 文件夹里面是头文件, python37.dll 是我们所需要的动态链接库,就像 linux 下的 .so 文件一样。

3. 在Qt下嵌入 python

我使用的是Qt的控制台程序,也就是 C++ 嵌入 python 。

① pro 文件中链接库

Qt pro中文件如图:

注意:虽然系统是64位的,但是 Qt 与 python 都是 32 位的

②在 C++ 程序中调用 python

在程序中调用python语句分以下几个步骤

1> 包含头文件

2> 初始化python解释器

3> 使用C接口运行 python 语句

4> 调用完成后释放资源。当然也可以再构造函数中初始化一次,在析构函数中再释放资源。

4.  程序运行结果

最后再说些其他的:在嵌入python中有以下几个问题要考虑:

① python 脚本的静态语法检查与运行中错误的输出

② python 输出信息重定向到宿主程序

③如何停止、暂停 ( 钩子函数 ) 正在运行的 python 脚本

④当运行 python 阻塞接口时,停止会怎样?

⑤ python 脚本中有耗时操作,需要运行到线程或进程中

总结

以上所述是小编给大家介绍的Windows 嵌入python解释器的过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

在python的解释器中使用函数_浅析Windows 嵌入python解释器的过程相关推荐

  1. windows下运行python打印有颜色的字_在windows下Python打印彩色字体的方法

    本文讲述了Python在windows下打印彩色字体的方法.分享给大家供大家参考,具体如下: ##################################################### ...

  2. python爬虫表格中清除空格_爬虫清洗:python strip()函数 去空格\n\r\t函数的用法

    在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数: strip 同时去掉左右两边的空格 lstrip 去掉左边的空格 rstrip 去掉右边的空格 ...

  3. python在物理中怎么用_大学物理中Python的应用

    大学物理中 Python 的应用 宋碧雄 ; 胡海云 [期刊名称] < <物理与工程> > [年 ( 卷 ), 期] 2019(000)0z1 [摘要] 随着计算机相关技术的发 ...

  4. python在园林中的应用_浅析亭在园林中的应用

    浅析亭在园林中的应用 作者: 赵威钧 摘 要:亭是特指一种有顶无墙的小型建筑物,是给行人提供休息的场所.从中国传统文化的角度考虑,亭在中国古代文人心目中具有非常独特的审美意义.园亭是供游人休息和观景的 ...

  5. python在工作中怎么用_简洁优雅的Python教你如何在工作中“偷懒”

    4 Hi all , 5 这是一个测试邮件,详情请参考附件 6 情况如下图: 7

  6. Python使用numpy中trim_zeros函数去除首尾0值的语法

    Python使用numpy中trim_zeros函数去除首尾0值的语法 目录 Python使用numpy中trim_zeros函数去除首尾0值的语法 #numpy中trim_zeros

  7. Python class 类中 __init__ 函数

    什么是类? 类 是通过执行类语句创建的特定对象类型.类对象 被当作模板来创建实例对象,实例对象包含了特定于数据类型的数据(属性)和代码(方法). 类可以基于一个或多个的其他类,称之为基类(ES),它继 ...

  8. python函数count_python中count函数知识点浅析

    python中,count函数的作用是进行python中的数量计算.count函数用于统计字符串.列表或元祖中某个字符出现的次数,是一个很好用的统计函数.具体介绍请看本文. 1.count函数 统计列 ...

  9. [转载] python 列表List中index函数的坑

    参考链接: Python列表list sort() python 列表List中index函数的坑 例如 a = [1, 2, 1] 如果使用 a.index(1), 输出的只是列表中第一个出现的 1 ...

最新文章

  1. Marvelous Designer衣袖设计教程
  2. Grunt插件之LiveReload 实现页面自动刷新,所见即所得编辑
  3. freemarker 学习笔记
  4. python 装饰器有哪些_Python装饰器有哪些常见用途?
  5. shell 杂记一(笨鸟)
  6. 【转】DICOM图像像素值(灰度值)转换为CT值
  7. 11.10金山面试内容
  8. 阿里天池供应链需求预测比赛小结
  9. 121道分布式面试题和答案
  10. linux变utf8为sjis命令,【通译】PHP中 文字编码变换时 使用SJIS-win而非SJIS,使用eucJP-win而非EUC-JP...
  11. 超详细的Java基础面试题总结
  12. 基于VGGFace2的人脸性别年龄检测系统(源码&教程)
  13. 近期优秀技术讲座资料和内容推荐
  14. matlab 坐标轴刻度朝外_Matlab 绘图 坐标轴 刻度
  15. leaflet实现风场流动
  16. 卸妆·回归:“超级医保局时代“的医院信息化转型
  17. MATLAB画带延时系统的伯德图
  18. C#毕业设计——基于C#+asp.net+sqlserver的视频点播系统设计与实现(毕业论文+程序源码)——视频点播系统
  19. ps如何“移花接木”,有什么相关教程吗
  20. KusionStack GAIDC2023 活动回顾

热门文章

  1. RK30SDK系统重启源码分析
  2. PHP Curl 多线程实现
  3. [已送完]赠送Google Wave 邀请码
  4. 个人博客网站建设_利用Github+Jeklly搭建个人博客网站
  5. 每一个ip地址只能投票一次php代码,PHP,一个IP只能访问一次的代码
  6. gittrack_Git 追踪分支
  7. 跨域问题_跨域问题如何解决?
  8. python 复制文件并重命名_潘石屹都开始学Python了,你还有什么理由放弃?
  9. sql文件加载出错_四十二、SparkSQL通用数据源加载(load)和保存(save)
  10. 如何用 Visual Studio 2017 开发 Arduino 应用程序