栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言扩展Python

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言扩展Python

一、环境

              python2.6

             centos6.5


二、编写C文件(Extest2.c)        
        #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模块导入到默认查找路径中


四、测试

        

:~

原文出处

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/233492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号