Python的C扩展模块的编写(Anaconda+VS2013,python3.5和c++)

18 篇文章 1 订阅
11 篇文章 1 订阅

vs2013
调整生成配置,release和与python位数一致的平台,这里我选择x64,因为我的python是64位
创建工程->32位项目->项目类型选DLL
配置工程属性:
这里写图片描述
这里写图片描述
这里写图片描述

**

.h文件中,加入#include <Python.h>.cpp文件中编写扩展功能函数,具体示例见:http://download.csdn.net/download/zkp_987/10040116
然后将pythonextention\x64\Release下的pythonextention.dll改后缀.pyd放在Anaconda\DLLS下,在python中 import pythonextention 即可
注意:
编译生成的dll文件要与python的位数一致,如果用默认生成的32位的dll和64位的python,会出现ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。这时候修改生成的配置管理器,选择Release 和x64,从新编译生成64位的dll即可。
如果VS报错fatal error LNK1104: 无法打开文件“python35_d.lib” ,由于错误没有生成需要的文件。
错误的原因是系统安装有Python3.5,而默认的情况下Python是不提供python35_d.lib和python35_d.dll文件的(注意,这里并不是把libs下的python35.lib改名就可以解决的)。有d和没有d的区别是有d的是给debug用的,没d是给release用的,为了编译通过,如果想配置debug可以在网上下载这两个文件,然后将python35_d.lib放在Anaconda\libs下,或者配置release然后直接生辰发布版的lib

**

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值