IPython Notebook出现ImportError - IPython无法导入

4

我正在尝试在浏览器中的ipython(2.2.0,运行python 3.3.5)笔记本中导入pandas,但是出现以下错误:

ImportError: No module named '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和非Notebook 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相比,ipython notebook对导入有何变化?


现在它又可以工作了。虽然我正在后台重建一些软件包,但当前的软件包都不是Python模块,所以我只能将--pylab inline开关归咎于我的IPython,我刚刚将其删除。仍然好奇为什么这可能导致找不到scimath - Anaphory
1个回答

2
请参考之前的问题和答案 - https://dev59.com/I2Up5IYBdhLWcg3wGEoR#15622021
IPy笔记本和CLI之间的一个关键区别是 os.path 变量的默认行为,以及笔记本设置 notebook_dir
显然,在IPy笔记本中,pandas没有找到scimath模块。 如果您仔细查看回溯,您会看到该行
17 from . import scimath as math

这是一个相对路径导入,.表示请求从同一目录导入模块。根据CLI的启动位置和您告诉IPython它正在运行的位置,这可能是numpy找不到scimath的原因。我可能是错的,但这在我以前发生过。


我怀疑最近numpy方面没有任何变化,特别是如果您自从出现这种情况以来就没有更新过numpy。我希望我上面给出的答案能够回答您的最后一个问题,即“如何调试此错误以及与cli相比,ipython notebook对导入有什么改变”。如果您想尝试在不确定根本原因的情况下解决问题,我建议卸载numpypandas,重新安装,并祈求好运。 - tyleha
啊,好的,谢谢。你能把这个加到你的回答里吗?我不太清楚你建议我们遵循那些调试步骤,特别是因为显然 from numpy.lib import … 会找到模块在 …/numpy/lib/init.py,但相对的 from . import scimath 没有被解析,所以我不知道 os.cwd()sys.path 怎么会有帮助。 - Anaphory
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Anaphory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接