作为字典应用的官方参考文档Python/C API Reference Manual _ _

这个中有非Python关键字cdef和public。这些关键字属于Cython。因为我们须要在C说话中应用“编译好的Python代码”,所以得让great_function大年夜外面变得可见,办法就以“public”润饰。而cdef类似于Python的def,只有应用cdef才可以应用Cython的关键字public。
这个函数中其他的部分与正常的Python代码是一样的。
接下来编译 great_module.pyx


编译敕令和第一部分雷同:


在Visual Studio敕令提示符下编译:
1
2
cl/LD dllmain.cgreat_module.c-IC:Python27includeC:Python27libspython27.lib
会获得一个dllmain.dll。我们在Excel琅绫擎应用它,没错,传说中的Excel与Python混淆编程:

参考材料:Cython的官方文档,质量异常高:


接下来应用SWIG将这个设备文件编译为所谓Python Module Wrapper
1
swig-python mymodule.i
获得一个 mymodule_wrap.c和一个mymodule.py。把它编译为Python扩大:
1
2
cl/LD mymodule_wrap.c/o_mymodule.pyd-IC:Python27includeC:Python27libspython27.lib
Linux:
1
gcc-fPIC-shared mymodule_wrap.c-o_mymodule.so-I/usr/include/python2.7/-lpython2.7
留意输出文件名前面要加一个下划线。
如今可以急地点Python下应用这个module了:


换句话说,SWIG主动完成了诸如Python类型转换、module初始化、导出代码表生成的诸多工作。
对于C++,SWIG也可以应对。例如以下代码有C++类的定义:


2
写在最后:
Windows:
因为CPython自身的构造设计合理,使得Python的C/C++扩大异常轻易。如不雅计算快速完成义务,Cython(C/C++调用Python)和SWIG(Python调用C/C++)是很不错的选择。然则,一旦涉及到比较复杂的转换义务,无论是持续应用Cython照样SWIG,仍然须要进修Python源代码。
【编辑推荐】
- 法度榜样员削减代码BUG的7种办法,拒绝编程5分钟,查代码2小时!
- 法度榜样员5种编程入门办法,快速学会一门编程说话!
- 外媒速递:五种门路助你快速控制Python的奥秘
- 机械进修怎么学?阿里法度榜样员只用七步带你控制Python机械进修!
- 我用Python爬了一个零售网站,分析了一千多种葡萄酒!
推荐阅读
近年来,智能制造高潮囊括神州大年夜地,成为推动“中国制造2025”国度计谋最重要的举措。个中,智能工厂(Smart Factory)作为智能制造重要的实践范畴,已引起了制造企业的广泛存眷和各级当局>>>详细阅读
本文标题:你试过C语言和Python一起混合编程吗?两者相加不是已经无敌了!
地址:http://www.17bianji.com/lsqh/39687.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示