尝试来自http://caffe.berkeleyvision.org/tutorial/interfaces.html的caffe python示例给出了错误:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
caffe_root = '/opt/caffe'
import sys
sys.path.insert(0, caffe_root + 'python')
import caffe
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-5-18cb333d5c1b> in <module>()
7 sys.path.insert(0, caffe_root + 'python')
8
----> 9 import caffe
...
...
/usr/lib/python2.7/site-packages/scipy/signal/__init__.py in <module>()
272 from __future__ import division, print_function, absolute_import
273
--> 274 from . import sigtools
275 from .waveforms import *
276 from ._max_len_seq import max_len_seq
ImportError: cannot import name sigtools
显然sigtools导入失败,但我无法弄清楚原因。 /usr/lib/python2.7/site-packages/scipy/signal包含所有文件:
$ ls -1 /usr/lib/python2.7/site-packages/scipy/signal/sign*
/usr/lib/python2.7/site-packages/scipy/signal/signaltools.py
/usr/lib/python2.7/site-packages/scipy/signal/signaltools.pyc
一般来说,如果我的工作目录与sigtools包所在的位置完全不同,那么如何使用这样的python进程指令,特别是解析了什么点?
from . import sigtools
答案 0 :(得分:0)
如上所述:
`from ... import` vs `import .`
&#34; 来自。 import sigtools &#34;导入主模块&#34;。&#34; (这是&#34;信号&#34;)而不是导入对象/模块sigtools。如果&#34;。&#34;已经导入它依赖于该结构。
我认为如果在python导入路径中有2个具有相同名称的模块,这可能会很棘手:解释器会导入找到的第一个模块,而不会导入第二个模块。如果第二个模块的模块多于第一个模块,则可能导致类似于您的问题。