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

如何安装ipython notebook

IPython Notebook:代码重用

使用ipython notebook查看编辑.ipynb文件

ipython notebook环境搭建