- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章? Python扩展和嵌入由于Python是解释性的脚本语言,执行速度较慢。在某些需要提高脚本执行效率的情况下,可以考虑扩展Python,用C/C++来完成对效率要求高的部分。另外,由于Python功能强大,完全可以将其嵌入到C/C++中,以简化程序,减少代码。
8.1? 扩展Python
Python提供了支持C/C++接口,可以方便地使用C/C++来扩展Python。用C/C++编写的Python扩展主要用于完成底层的系统操作,以及提高执行速度等。
8.1.1? 扩展概述Python提供了接口API,通过使用API函数可以编写Python扩展。在Windows下可以使用VC来编译Python扩展。在UNIX和Linux下则可以使用gcc来编译。
1.设置编程环境使用VC时需要设置一些头文件以及库文件的包含目录。如果使用VC++ 6.0,则设置过程如下所示。(1)单击【Tools】|【Options】命令,弹出如图8-1所示的对话框。(2)单击【Directories】标签,选择【Show directories for】下拉列表框中的【Include files】项,将Python安装目录下的INCLUDE目录添加到【Directories】列表中,如图8-2所示。(3)选择【Show directories for】下拉列表框中的【Library files】项,将Python安装目录下的LIBS目录添加到【Directories】列表中,如图8-3所示。(4)单击【OK】按钮完成操作。如果使用Visual Studio 2005,则设置过程如下所示。(1)单击【工具】|【选项】命令,弹出如图8-4所示的对话框。(2)双击左侧列表树中的【项目和解决方案】项,选择【VC++目录】项,如图8-5所示。(3)选择【显示以下内容的目录】下拉列表框中的【包含文件】项,将Python安装目录下的include目录添加到列表中,如图8-6所示。
图8-1? Options对话框
图8-2? 添加头文件
?图8-3? 添加库文件
图8-4? 选项对话框 ??
图8-5? 设置VC++目录
图8-6? 添加头文件 ????????(4)选择【显示以下内容的目录】下拉列表框中的【库文件】项,将Python安装目录下的libs目录添加到列表中,如图8-7所示。(5)单击【确定】按钮完成操作。
图8-7? 添加库文件 ? 2.创建工程在Visual C++ 6.0中创建Python扩展过程如下所示。(1)单击【File】|【New】命令,弹出创建工程对话框。单击【Projects】标签,选择左侧列表中的【Win32 Dynamic-Link Library】项,在【Project name】文本框中输入工程名“myext”,如图8-8所示。(2)单击【OK】按钮,弹出如图8-9所示的工程设置对话框。选中【An empty DLL project.】单选框。
图8-8? 创建工程对话框 ?
图8-9? 工程设置对话框 (3)单击【Finish】按钮弹出如图8-10所示的确认对话框。单击【OK】按钮完成工程创建。(4)单击【File】|【New】命令弹出创建文件对话框,单击【Files】标签。选择左侧列表中的【C++ Source File】项,在【File】文本框中输入文件名“myext.c”,如图8-11所示。
图8-10? 确认对话框??
图8-11? 添加文件 ?(5)单击【OK】按钮,在“myext.c”中添加如下内容。
#include #include PyObject *show(PyObject *self, PyObject *args){char *message;const char *title = NULL;HWND hwnd = NULL;int r;if (!PyArg_ParseTuple(args, iss, hwnd, message, title))return NULL;r = MessageBox(hwnd,message, title, MB_OK);return Py_BuildValue(i, r);}static PyMethodDef myextMethods[] = {{show, show, METH_VARARGS,show a messagebox},{NULL,NULL}};PyMODINIT_FUNC initmyext(){PyObject *mod;mod = Py_InitModul
您可能关注的文档
- 证券投资学课程大纲.doc
- 证券投资分析-实验10技术指标(北工商).doc
- 证券模拟试卷1.doc
- 证券立法历程.doc
- 证券考试投资分析真题证券投资分析试题2.doc
- 证券基础知识真题及答案.doc
- 证券基础易混淆知识点.doc
- 证券基础模拟.doc
- 证券基础 1.doc
- 证券基础 hao de dongxi.doc
- 2025年新能源电动叉车租赁行业市场国际化竞争策略研究.docx
- 2025年民航职业技能鉴定考前冲刺测试卷及答案详解【名校卷】.docx
- 气血与健康的关系.pptx
- 2025年民航职业技能鉴定考前冲刺测试卷及答案详解【必威体育精装版】.docx
- 2025年民航职业技能鉴定考前冲刺测试卷及答案详解【历年真题】.docx
- 2025年民航职业技能鉴定考前冲刺测试卷及完整答案详解(易错题).docx
- 2025年新能源电动叉车租赁行业市场增长动力与阻碍因素分析.docx
- 2025年民航职业技能鉴定考前冲刺测试卷及完整答案详解一套.docx
- 2025年新能源电动叉车租赁行业市场潜力与体系建设策略分析.docx
- 2025年新能源电动叉车租赁行业市场新能源车辆租赁市场机遇.docx
文档评论(0)