IPython Notebook 抛出 ImportError – IPython 不会
Posted
技术标签:
【中文标题】IPython Notebook 抛出 ImportError – IPython 不会【英文标题】:IPython Notebook throws ImportError – IPython doesn't 【发布时间】:2014-12-01 23:57:08 【问题描述】:我试图在我的浏览器中的 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
存在并且与@987654326具有相同的权限和创建日期@在同一目录中。
如何调试此错误?与 cli ipython
相比,ipython notebook
在导入方面有何变化?
【问题讨论】:
现在它又可以工作了。当我在后台重建一些包时,当前的包都不是 python 模块,所以我只能责怪我刚刚删除的 ipython 的--pylab inline
开关。仍然好奇为什么这会导致scimath
找不到。
【参考方案1】:
请参阅上一个问题和答案 - https://***.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 的原因。我可能是错的,但它以前发生在我身上。
【讨论】:
我怀疑numpy
最近发生了任何变化,尤其是如果自从这种情况开始发生以来您还没有更新 numpy 的话。我在上面给出的答案希望能解决您的最后一个问题,即“我如何调试此错误以及 ipython notebook
与 cli 相比对导入有何更改”。如果您想在不找出根本原因的情况下尝试解决问题,我建议您卸载 numpy 和 pandas,重新安装并交叉手指。
啊,好的,谢谢。您可以将其添加到您的答案中吗?我不清楚您是否建议在那里执行调试步骤,特别是因为显然from numpy.lib import …
将模块查找为.../numpy/lib/__init__.py,但相对的from . import scimath
没有解决,所以我不知道os.cwd()
和sys.path
会有什么帮助。
重建几个包后问题确实消失了,虽然我现在无法重新创建错误来验证这一点,但这个答案中给出的原因令人信服,有助于理解如何发生这样的错误。
以上是关于IPython Notebook 抛出 ImportError – IPython 不会的主要内容,如果未能解决你的问题,请参考以下文章
安装anaconda-换源-安装ipython-安装ipython notebook
IPython Notebook error: Error loading notebook