win7 swig c++封装 python 扩展

用swig在windows上实现Python 的c++扩展

  1. SWIG官网下载最新的Swigwin,解压
    这里写图片描述

    2. .添加环境变量

    将swig.exe所在文件夹目录添加到环境变量path中

    3. 检查是否配置成功
    运行cmd.exe ,输入swig -help,出现如下图所示提示信息即为配置成功
    这里写图片描述

    4. 用vs2013建立工程

    新建win32控制台应用程序,配置类型为动态链接库.dll

    添加新建文件example.i,如下图所示:
    这里写图片描述
    编写example.i文件内容为如下代码:

/* File: example.i */
%module example

%{
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}

int fact(int n);

添加新建example.h文件,内容为:

/* File: example.h */

int fact(int n);

添加新建example.cpp文件,内容为:

/* File: example.cpp */

#include "example.h"

int fact(int n) 
{
    return n*n;
}

5. 生成example.py
在cmd中切换目录到example.i所在文件夹目录下,并输入

swig -c++ -python example.i

如图所示:
这里写图片描述
在example.i 同文件夹下会生成example_wrap.cxx 和 example.py两个文件

6. 编译生成python可调用的扩展模块库_example.pyd
添加example_wrap.cxx到以上vs2013项目中:
这里写图片描述

设置项目属性,目标文件名为_$(ProjectName) ,目标扩展名为.pyd:
这里写图片描述

将Python.h目录添加到VC++附加包含目录中;
将python35.lib所在目录添加到链接器附加库目录中,并添加依赖项python35.lib;
编译生成项目,成功后则会在输出目录中出现_example.pyd文件。
这里写图片描述

7. 测试使用example.py和_example.pyd
将example.py 拷贝到_example.pyd同一目录下
在命令行提示符cmd.exe中更改目录到example.py 和_example.pyd所在目录;
输入python
启动python解释器
输入import example as e 引用example模块
输入print(e.fact(6)) 看打印出来是否是36
这里写图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值