ImportError: No module named caffe 的解决方案

一、python导入caffe报错:

ImportError: No module named caffe 的解决方案
这里写图片描述
这种情况一般是没有把caffe中的和python相关的内容的路径添加到python的编译路径中。可以使用以下方式解决问题(参考链接:http://blog.csdn.net/striker_v/article/details/51596628):
(1)临时方案(重启python解释器之后再import caffe还是会报同样的错误。只有在caffe-master/python这个文件夹之下打开python解释器使用import caffe才不会报错。):

import sys
sys.path.append("/(你的caffe-master路径)/caffe-master/python")
sys.path.append("/(你的caffe-master路径)/caffe-master/python/caffe")

因为python的编译路径“path”是模型“sys”的一个属性,所以要先使用命令“import sys”。
(2)使用python调用caffe的python文件开头添加如下代码:

#设置caffe源码所在的路径  
import sys  
sys.path.append('to/your/caffe/python')  
import caffe  

二、模块的搜索-导入机制

参考链接:(http://blog.csdn.net/u014596240/article/details/49820469)
模块的搜索路径
在一个模块被导入时,PVM会在后台从一系列路径中搜索该模块,其搜索过程如下:
1、在当前目录下搜索该模块;
2、在环境变量PYTHONPATH中指定的路径列表中依次搜索;
3、在Python安装路径中搜索
事实上,PVM通过变量sys.path中包含的路径来搜索,这个变量里面包含的路径列表就是上面提到的这些路径信息,
模块的搜索路径都放在了sys.path列表中,如果缺省的sys.path中没有含有自己的模块或包的路径,可以动态的加入(sys.path.apend)即可。

标准Import
Python中所有加载到内存的模块都放在sys.modules。当import一个模块时首先会在这个列表中查找是否已经加载了此模块;
如果加载了则只是将模块的名字加入到正在调用import的模块的Local名字空间中。
如果没有加载则从sys.path目录中按照模块名称查找模块文件,模块文件可以是py、pyc、pyd,找到后将模块载入内存,并加入到sys.modules中,并将名称导入到当前的Local名字空间。
可以看出了,一个模块不会重复载入。多个不同的模块都可以用import引入同一个模块到自己的Local名字空间,其实背后的PyModuleObject对象只有一个。
一个容易忽略的问题,import只能导入模块,不能导入模块中的对象(类、函数、变量等)。如一个模块A(A.py)中有个函数getName,另一个模块不能通过import A.getName将getName导入到本模块,只能用import A。如果想只导入特定的类、函数、变量则用from A import getName即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值