无法在Jupyter Notebook中导入NLTK

7

当我从bash中运行python或ipython时,我可以导入nltk包。因此,nltk肯定已经在某个地方安装好了(在bash的python中,nltk.__file__/home/nadine/anaconda2/lib/python2.7/site-packages/nltk/__init__.pyc)。

然而,在使用Jupyter Notebook时(我使用Anaconda安装的,带有2.7版本的python),导入nltk失败:

import nltk
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-b06499430ee0> in <module>()
----> 1 import nltk

ImportError: No module named nltk

在Jupyter Notebook中,sys.executable返回的是/home/nadine/.conda/envs/py27/bin/python,而在bash中运行的python则返回/home/nadine/anaconda2/bin/python2.7。出现这种情况的原因是什么,如何解决?
4个回答

3
Anaconda使用自己的Python版本,你显然已经在系统Python库中安装了nltk。
但是Anaconda通常会捆绑有nltk——为什么您的没有呢?也许您安装了一个最小版本,并且需要在其上安装nltk。通过在(支持Anaconda)bash提示符下运行conda list nltk来检查。
无论原因是什么,听起来像nltk不在那里。使用conda install nltk命令进行安装。

2

我曾遇到同样的问题,我通过使用另一个jupyter版本来解决它。

在经典的jupyter notebook中,它对我不起作用。我安装了jupyterlab -> pip install jupyterlab并使用以下命令启动:jupyter-lab

总结:

pip install jupyterlab
jupyter-lab

然后它就正常工作了!


1
在查看了许多其他的SO答案之后,这个回答让我开心极了! - enridaga

0

有个想法,你可以尝试查看你的Jupyter Notebook正在运行哪个内核。也许它没有使用 [conda root] ,因此无法访问包。

您应该能够在笔记本屏幕右上角看到它。否则,转到菜单中的 Kernel>Change Kernel并在那里检查。


我只能看到它正在运行“Python 2”。有没有办法获得更详细的信息? - Egon
您可以在Jupyter Notebook中检查Python版本,方法是点击“帮助”>“关于”,例如我的显示为:“Python 2.7.13 |Anaconda, Inc.|”。此外,您还可以使用env命令来检查当前环境的详细信息。在ipython中(导入正常)和jupyter中(导入不正常)都可以使用该命令。 - Dominique Fuchs
检查你正在使用的Python版本的另一种方法是使用sys.version(使用import sys导入)。 - Dominique Fuchs

0
可能是你的conda环境设置了错误版本的Python。我曾经遇到过这个问题,解决方法如下:
  • 使用sys.version检查笔记本中正在运行的Python版本
  • 停用当前环境
  • 创建一个新环境并安装该Python包
  • 激活新环境
  • 使用import nltknltk.download()运行笔记本

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