IPython Notebook抛出ImportError - IPython没有

时间:2014-10-07 14:09:11

标签: numpy pandas ipython-notebook

我试图在我的浏览器中的ipython(2.2.0,运行python 3.3.5)笔记本中import pandas,但是

[...]

/usr/local/lib/python3.3/site-packages/numpy/add_newdocs.py in <module>()
     11 from __future__ import division, absolute_import, print_function
     12 
---> 13 from numpy.lib import add_newdoc
     14 
     15 ###############################################################################

/usr/local/lib/python3.3/site-packages/numpy/lib/__init__.py in <module>()
     15 from .ufunclike import *
     16 
---> 17 from . import scimath as emath
     18 from .polynomial import *
     19 #import convertcode

ImportError: cannot import name scimath

然而,在纯python和非笔记本ipython中,import pandas和有问题的from numpy.lib import add_newdoc行运行没有问题,文件/usr/local/lib/python3.3/site/site-packages/numpy/lib/scimath.py存在且具有相同的权限,创建日期为同一目录中的__init__.py

如何调试此错误?与cli ipython notebook相比,ipython对导入的更改是什么?

1 个答案:

答案 0 :(得分:2)

请参阅上一个问题和答案 - https://stackoverflow.com/a/15622021/1766755

IPy笔记本和CLI之间的主要区别是os.path var的默认行为,以及笔记本设置notebook_dir

显然在IPy笔记本中,pandas没有找到scimath模块。如果你仔细观察回溯,你会看到

17 from . import scimath as math

这是一个相对路径导入,。表示导入模块from the same directory的请求。根据CLI的开始位置以及告诉IPython 认为它正在运行的位置,这可能是numpy找不到scimath的原因。我错了,但以前发生在我身上。