zoukankan      html  css  js  c++  java
  • c++绑定python by swig

    1. 下载

    The latest release is swig-3.0.12. View the release notes. Windows users should download swigwin-3.0.12 which includes a prebuilt executable.

    下载swig-3.0.12 windows版,解压后将swig.exe的路径添加到环境变量path

    2. 跑demo

    找到一个例子程序 swigwin-3.0.12Examplespythonsimple,先跑通这个实例

    simple目录下已经为我们准备好了example.c文件

    以及example.i文件

    通过swig生成2个文件

    swig -python example.i

    // 如果example是C++写的话就是

    swig -c++ -python example.i

    执行完命令后会生成两个文件:example_wrap.cexample.py.

    example_wrap.cexample.c的功能封装了一层,准备生成pyd文件,也就是python使用的导入库

    example.py 是将来别的模块想引用example这个库时,导入的python模块,显然核心功能是在pyd文件中,

    所以这个py文件也就是简单的调用了pyd中的函数。

    通过python自带工具distutils生成动态库

    编写setup文件,从网上抄个改改

    from distutils.core import setup, Extension
    
    example_module = Extension('_example',
                sources=['example.c', 'example_wrap.c'],
                )
    
    setup (name='example',
           version='0.1',
           author="SWIG Docs",
           description="""Simple swig example from docs""",
           ext_modules=[example_module],
           py_modules=["example"],
          )
    

    执行python setup.py build

    成功生成pyd模块在buildlib.win32-2.7目录下

    执行 python runme.py,调用c模块已完成

    The gcd of 42 and 105 is 21
    Foo = 3.0
    Foo = 3.1415926

    3.修改验证

  • 相关阅读:
    P2184 贪婪大陆
    codeforces-1348-D Phoenix and Science
    联系我
    留言板
    友链
    java集合ArrayList按指定字段排序
    linux下设置oracle开机自启动
    微信公众号开发参考教程
    java生成快递单并调用打印机打印
    java生成128A条形码
  • 原文地址:https://www.cnblogs.com/Lnju/p/10462312.html
Copyright © 2011-2022 走看看