Python在脚本中无法`import nltk`,但在解释器中可以

3 投票
1 回答
4372 浏览
提问于 2025-04-18 03:16

我找到了问题的原因,我把原来的脚本文件命名为nltk.py,所以Python试图从这个脚本文件中导入word_tokenize,真是个傻瓜的错误,抱歉。


我在Windows上尝试使用nltk。已经安装了nltk和nltk数据。

但是,当我在命令行中运行 python -u 'filename.py' 时,出现了如下错误。

Traceback (most recent call last):
  File "filename.py", line 1, in (module)
    from nltk import word_tokenize
  File "filenmae.py", line 1, in (module)
    from nltk import word_tokenize
ImportError: cannot import name word_tokenize

另一方面,当我运行 python < 'filename.py' 时,结果是正确的。

filename.py中的代码是一个简单的测试代码,如下所示。

from nltk import word_tokenize
tokens = word_tokenize('hello i am your friend')
print(tokens)

你能帮我解决这个问题吗?提前谢谢你。

我按照这个链接的源安装说明重新安装了nltk,但没有成功。

另外,我之前安装过Python 3.3,但发现nltk在安装时无法识别Python 3.3,所以我安装了Python 2.7。现在我的电脑上实际上有两个版本的Python。

相关的用户路径是 C:\Python27

在系统路径中,相关字段是:

Path C:\Python27\

PYTHONIOENCODING utf-8

PYTHONPATH C:\Python27

在命令行中运行时的Python版本是:

Python 2.7.3 (日期) [MSC v.1500 32位 (Intel)] on win32

此外,我还尝试在命令行和使用一个脚本文件运行以下代码,具体代码可以在这里找到:

import nltk
import sys
print(nltk)
print(sys.executable)

在命令行中,结果是

>>> print(nltk)
<module 'nltk' from 'C:\Python27\lib\site-packages\nltk\__init__.pyc'>
>>> print(sys.executable)
C:\Python27\python.exe

使用脚本时,结果是

<module 'nltk' from 'C:\Users\username\Documents\nltk.py'>
C:\Python27\python.exe
<module 'nltk' from 'C:\Users\username\Documents\nltk.py'>
C:\Python27\python.exe

1 个回答

2

我找到了问题的原因,我把原来的脚本文件命名为 nltk.py,所以 Python 尝试从这个脚本文件中导入 word_tokenize。真是个愚蠢的错误,抱歉!

撰写回答