分步说明。这假定您具有源,并且正在构建一个将源直接链接到其中的DLL扩展。创建一个工作项目后,我没有再经历过,所以我可能错过了一些东西。如果您踩在某个步骤上,请对此帖子发表评论。如果您已有一个DLL,并且想创建一个包装它的Python扩展DLL,则此步骤会稍有不同。如果您需要有关此帖子的评论的帮助,我将进行扩展。
编辑8/19/2012 :如果从C示例开始,请不要
-c++在步骤13中使用,
.c而
.cxx在步骤14和19中将用作包装文件扩展名。
- 启动Visual Studio 2010
- 现有代码中的文件,新建,项目…
- 选择“ Visual C ++”项目类型,然后单击“下一步”。
- 输入项目文件的位置,即.cpp / .h / .i文件所在的位置。
- 对于“项目名称”,选择.i文件中的%module语句中使用的名称(区分大小写)。
- 选择项目类型“动态链接库(DLL)项目”,然后单击“下一步”。
- 将包括到Python.h文件路径的路径添加到“包含”搜索路径,通常类似于“ C: Python27 include”,然后单击“下一步”。
- 单击完成。
- 右键单击“解决方案资源管理器”中的“项目”,然后单击“添加”,“现有项…”,然后选择您的.i文件。
- 右键单击.i文件,属性,然后选择配置“所有配置”。
- 将项目类型更改为“自定义构建工具”,然后单击“应用”。
- 在“属性”中选择“自定义构建工具”(它将在上面的“应用”之后显示)。
- 输入“ swig -c ++ -python -outdir $(Outdir)%(Identity)”的命令行(这假定SWIG在您的路径中,并根据需要将生成的.py文件重定向到Debug或Release目录)。
- 在输出中输入“%(Filename)_wrap.cxx; $(Outdir)%(Filename).py”。
- 单击确定。
- 右键单击.i文件,然后选择“编译”。
- 右键单击项目,添加,新建过滤器,将其命名为“ Generated Files”。
- 右键单击“生成的文件”,单击“属性”,然后将“ SCC文件”设置为“ False”(如果使用源代码管理,这将阻止VS2010尝试在此过滤器中检入生成的文件)。
- 右键单击“ Generated Files”,然后单击“添加”,“退出项目”,然后选择由编译生成的_wrap.cxx文件。
- 右键单击项目“属性”。
- 选择配置“所有配置”。
- 选择“配置属性”,“链接器”,“常规”,“其他库目录”,然后将路径添加到python库,通常为“ C: Python27 libs”。
- 选择“配置属性”,“常规”,然后将TargetName设置为“ _ $(ProjectName)”。
- 将目标扩展名设置为“ .pyd”。
- 生成项目的“发行”版本。除非您构建Python本身的调试版本,否则您无法构建Debug版本。
- 打开控制台,转到项目的Release目录,运行python,导入模块,然后调用函数!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)