python2.6
centos6.5
#include#include #include int fac(int n) { if(n<2) return 1; return n*fac(n-1); } char *reverse(char *s) { register char t,*p=s,*q=(s+strlen(s)-1); //register变量作用参考https://blog.csdn.net/franz_/article/details/49427933 while(s && (p 以上的过程是首先声明c语言环境下参数类型,然后用PyArg_ParseTuple函数进行转换到声明中得到实例化后的参数,将这些参数运用到已经定义的函数中进行操作,依据操作后的返回值再进行转换输出.关于PyArg_ParseTuple转化格式参考http://web.mit.edu/people/amliu/vrut/python/ext/parseTuple.html三、编译运行 1.编写一个python脚本setup.py:
#! /usr/bin/env python from distutils.core import setup,Extension setup(name="Extest",ext_modules=[Extension(MOD,sources=['Extest2.c'])])2.编译setup.py:
python setup.py build
此过程可能会遇到下面错误:其一找不到文件或者命令,解决方法:由于centos6.3之后默认没有安装gcc,因此使用命 令 yum install gcc. 其二找不到Python.h头文件,解决方法:yum install python-devel。正确运行后结果如下:
这样在当前目录下会生成build目录,里面有两个目录如下:
在lib.linux-x86_64-2.6中含有Extest.so文件,只要将该文件复制到 /usr/lib64/python2.6/site-packages中即可在python导入
3.安装模块
除了手动复制到指定目录外,还可以使用命令执行
python setup.pu install
正确执行后:
这样就将Exteset模块导入到默认查找路径中
四、测试
:~
原文出处



