无法在NLTK中导入 - Python

时间:2015-12-11 06:36:40

标签: python nltk

当我在文件或shell中运行此命令时

import nltk

我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/nltk/__init__.py", line 83, in <module>
    from collocations import *
  File "/usr/lib/python2.7/dist-packages/nltk/collocations.py", line 37, in <module>
    from nltk.probability import FreqDist
  File "/usr/lib/python2.7/dist-packages/nltk/probability.py", line 45, in <module>
    import random
  File "random.py", line 2, in <module>
    T = int(raw_input())
ValueError: invalid literal for int() with base 10: ''

无法理解出现了什么问题。

1 个答案:

答案 0 :(得分:2)

您有一个本地random模块,它会屏蔽标准库中的random模块。

如果您尝试从其他工作目录import nltk,它应该会成功。但一般情况下,在标准模块之后命名模块并不是一个好主意,因此请将random.py文件重命名为其他文件。

为了完整起见,请允许我说这个错误在你追溯的最后几行显而易见:

  File "random.py", line 2, in <module>
    T = int(raw_input())
ValueError: invalid literal for int() with base 10: ''

从路径random.py,您可以看出错误位于名为 random.py 的本地文件中。从例外情况来看,您知道某些''raw_input函数传递了一个空字符串int,该字符串无法转换为{{1 }}

经验法则2 :始终在模块中保护int块中的可执行代码。