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

来源:互联网 发布:男士西装品牌知乎 编辑:程序博客网 时间:2024/05/21 11:34

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

**