当我在文件或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: ''
无法理解出现了什么问题。
答案 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
块中的可执行代码。