我试图在浏览器中的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的原因.我错了,但以前发生在我身上.