解决编译pycaffe时候出现缺少Python27_d.lib的解决方案
2018年01月23日 11:44:24
阅读数:1453
问题描述
最近在使用caffe调用python接口进行可视化的时候,发现总是出现“no module named caffe”这个问题,经过查询,好像是没有编译pycaffe,然后返回caffe-master/windows找到Caffe.sln。然后找到
对其右键重新生成(E),经过短暂的等待,出现了问题,
问题描述:缺少Python27_d.lib。
至于为啥是Python27,不是Python36,是因为我搭建Caffe框架的时候,使用了anaconda2而不是anaconda3,虽然我的系统现在是anaconda2和anachonda3并存。然后做如下修改就可以消除这个错误
解决办法
共需要修改三个地方
修改一:
找到anaconda2的安装目录,打开anaconda2/include/object.h
打开object.h
做如下修改:
修改:
-
#if defined(Py_DEBUG) && !defined(Py_TRACE_REFS)
-
#define Py_TRACE_REFS
-
#endif
为:
-
#if defined(Py_DEBUG) && !defined(Py_TRACE_REFS)
-
//#define Py_TRACE_REFS
-
#endif
修改二
还是在anaconda2/include/pyconfig.h
打开pyconfig.h文件
做如下修改:
修改:
-
ifdef _DEBUG
-
# pragma comment(lib,"python27_d.lib")
-
# else
-
# pragma comment(lib,"python27.lib")
-
# endif /* _DEBUG */
为:
-
ifdef _DEBUG
-
# pragma comment(lib,"python27.lib")
-
# else
-
# pragma comment(lib,"python27.lib")
-
# endif /* _DEBUG */
修改三
还是刚才的pyconfig.h文件
作如下修改:
修改:
-
#ifdef _DEBUG
-
# define Py_DEBUG
-
#endif
为:
-
#ifdef _DEBUG
-
//# define Py_DEBUG
-
#endif
修改完上述内容,再次重新生成pycaffe
然后就会得到如下结果:
生成成功。