python 教程 第二十一章、 扩展Python
2013-07-23 17:03
232 查看
第二十一章、 扩展Python
将Extest2.c和setup.py放入 Extest-1.0目录下
安装MinGW编译环境(mingw-get-inst-20110530.exe)
下载http://sourceforge.net/projects/mingw/
测试一下
/* D:\Python27\Lib\Extest-1.0\Extest2.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Python.h"
int fac(int n)
{
if (n < 2) return(1);
return (n)*fac(n-1);
}
static PyObject *
Extest_fac(PyObject *self, PyObject *args)
{
int num;
if (!PyArg_ParseTuple(args, "i", &num))
return NULL;
return (PyObject*)Py_BuildValue("i", fac(num));
}
static PyMethodDef
ExtestMethods[] =
{
{ "fac", Extest_fac, METH_VARARGS },
{ NULL, NULL },
};
void initExtest()
{
Py_InitModule("Extest", ExtestMethods);
}
#!/usr/bin/env python
# D:\Python27\Lib\Extest-1.0\setup.py
from distutils.core import setup, Extension
MOD = 'Extest'
setup(name=MOD, ext_modules=[
Extension(MOD, sources=['Extest2.c'])])
将Extest2.c和setup.py放入 Extest-1.0目录下
安装MinGW编译环境(mingw-get-inst-20110530.exe)
下载http://sourceforge.net/projects/mingw/
D:\Python27\Lib\Extest-1.0>python setup.py install build --compiler=mingw32
测试一下
>>> import Extest
>>> Extest.fac(10)
3628800
>>>
相关文章推荐
- python 教程 第二十一章、 扩展Python
- python 教程 第二十一章、 扩展Python
- python 教程 第二十一章、 扩展Python
- Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
- 使用Pyrex来扩展和加速Python程序的教程
- Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
- 快速教程:使用Cython来扩展Python/NumPy库
- 使用C语言来扩展Python程序和Zope服务器的教程
- python 教程 第二十二章、 其它应用
- python进程间传递文件描述符扩展库
- python简易教程
- Python基础教程学习第八日:Numpy(2)
- python教程19--《python基本数据类型list、tuple、dict、linecache读取file内容大综合运用》
- 安装教程:python3.5+win7+Scrapy
- Python教程之全局变量用法
- Python完全新手教程
- Python简明教程学习笔记5--面向对象编程
- Python股市数据分析教程——学会它,或可以实现半“智能”炒股
- Silverlight实例教程 - 自定义扩展Validation类,验证框架的总结和建议
- 用Python进行行为驱动开发的入门教程