numpy – IPython Notebook抛出ImportError – IPython没有

我试图在浏览器中的i
python(2.2.0,运行python 3.3.5)笔记本中导入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中,导入pandas和来自numpy.lib的问题行导入add_newdoc运行没有问题,文件/usr/local/lib/python3.3/site/site-packages/ numpy / lib / scimath.py存在且与同一目录中的__init__.py具有相同的权限和创建日期.

如何调试此错误?与cli ipython相比,ipython笔记本对进口的改变是什么?

最佳答案 请参阅上一个问题和答案 –
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的原因.我错了,但以前发生在我身上.

点赞