码迷,mamicode.com
首页 > Windows程序 > 详细

Windows下跨VC版本编译.pyd扩展(extension)模块

时间:2016-04-21 13:49:42      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:python windows 扩展 pyd vc

Windows下官方建议用与编译Python自身相同的Visual Studio版本来编译扩展模块,目前比较常用的Python版本对应的Visual Studio分别为:

Python 2.7 - Visual Studio 2008(9)

Python 3.3 & 3.4 - Visual Studio 2010(10)

Python 3.5 - Visual Studio 2015(14)

最近安装了一个Python 3.5,需要编译Fast R-CNN的Python扩展模块,电脑上安装的Visusal Studio版本只有2013,而且编译Fast R-CNN及其依赖项需要的CUDA Toolkit目前还不支持Visual Studio 2015。运行python setup.py build直接报错,显示错误为找不到vcvarsall.bat。

解决方法:

编辑Python安装目录/Lib/distutils/_msvccompiler.py,搜索这一行:

if version >= 14 and version > best_version:

这里14是distutils自动搜索系统中安装的Visual Studio最低版本(即2015),修改为12(即2013),保存,再次运行python setup.py build,成功启动编译,最后在链接阶段报错,提示找不到库文件ucrt.lib

这个ucrt.lib是Visual C++ 2015对C语言运行库进行重构后的产物,对应以前版本Visual C++中的msvcrt.lib,解决的办法也很简单,打开VC安装目录/lib,找到msvcrt.lib,复制一份并更名为ucrt.lib,再次运行python setup.py build,编译成功。


本文出自 “wdx04” 博客,请务必保留此出处http://wdx04.blog.51cto.com/288327/1766199

Windows下跨VC版本编译.pyd扩展(extension)模块

标签:python windows 扩展 pyd vc

原文地址:http://wdx04.blog.51cto.com/288327/1766199

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!