ImportError:没有名为'nltk.tokenize'的模块; 'nltk'不是包

时间:2016-11-01 13:53:28

标签: python pycharm nltk

我在windows 7的pycharm IDE中使用python 3.5.2,我在导入nltk包时遇到问题。

import nltk

给出以下错误:

Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import module = self._system_import(name, *args, **kwargs)
File "C:\Python\nltk practice.py", line 7, in <module> from nltk.tokenize import sent_tokenize, word_tokenize
File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import module = self._system_import(name, *args, **kwargs)
ImportError: No module named 'nltk.tokenize'; 'nltk' is not a package

nltk似乎已正确安装。当我在终端中运行以下内容时

pip install nltk

我明白了:

Requirement already satisfied (use --upgrade to upgrade): nltk in c:\users\leee\appdata\local\programs\python\python35-32\lib\site-packages

当我在终端中运行PATH或在python控制台中运行sys.path时,

C:\Users\leee\AppData\Local\Programs\Python\Python35-32\Lib\site-packages显示在长列表中。这是我安装所有其他软件包的地方,以及所有正确导入的软件包。

我现在很困惑,所有的帮助都表示赞赏。

4 个答案:

答案 0 :(得分:14)

这通常是因为您有另一个名为nltk.py的文件。检查您的目录(C:\Python,运行此脚本的位置)并删除或重命名(如果有)。 (我认为流浪nltk.py可能也在你PYTHONPATH的其他地方。)

答案 1 :(得分:4)

使用conda 4.5.4由于授权问题#306,MosesTokenizer已被移出NLTK https://github.com/pytorch/text/issues/306

现在你需要做的是

<div class="control-group" data-bind="fileDrag: multiFileData">
                                                   @*<div class="form-group row">*@
                                                      <div>
                                                         @*<div class="col-md-6">*@
                                                         <div class="col-md-6">
                                                            <!-- ko foreach: {data: multiFileData().dataURLArray, as: 'dataURL'} -->
                                                            <img style="height: 100px; @*margin: 5px;*@" class="img-rounded  thumb" data-bind="attr: { src: dataURL }, visible: dataURL">
                                                            <!-- /ko -->
                                                            <div data-bind="ifnot: fileData().dataURL">
                                                               <label class="drag-label">Drag files here</label>
                                                            </div>
                                                         </div>
                                                         <div class="col-md-6">
                                                            <input type="file" multiple data-bind="fileInput: multiFileData, customFileInput: {
                                                      buttonClass: 'btn btn-success',
                                                      fileNameClass: 'disabled form-control',
                                                      onClear: onClear,
                                                       }" accept="excel/*">
                                                         </div>
                                                      </div>
                                                </div>

并替换

pip install mosestokenizer

from nltk.tokenize.moses import MosesTokenizer, MosesDetokenizer

如果您正在使用conda,请注意摩西已从那里删除,现在可以在PyPI上找到

答案 2 :(得分:1)

在pycharm中,按ctrl / cmd + shift + A,然后输入&#34; Python解释器&#34;

并确保您拥有与pip引用的解释器相同的解释器(而不是某些Jetbrains默认的解释器)

注意:如果同时安装了python 2.7python 3.x,则惯例是pip引用2.x dist,{ {1}}是指pip3

答案 3 :(得分:1)

感谢。它解决了我的问题。

问题: 我创建了一个文件&#34; nltk.py&#34;并在该文件中编写代码并尝试执行它会给出错误&#39; ModuleNotFoundError:没有名为&#39; nltk.tokenize&#39 ;;的模块。 &#39; NLTK&#39;不是包裹&#39;。

解决方案: 之后我改名为#34; nltk.py&#34;对其他人来说,我的问题得到了解决。