我试图在我的浏览器中的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
对导入的更改是什么?
答案 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的原因。我错了,但以前发生在我身上。