我正在运行Python 2.7.3和Mac OS 10.8.5。我从nltk.org下载了所有软件包和数据,并且能够在终端中一次成功地使用它们。我想用它们编写自己的脚本,这似乎是一个问题。
如果我打开终端并输入:
cd nltk_data
python
from nltk.book import *
它完美地执行。如果我打开终端并输入:
python mycode1.py
其中“mycode1.py”如下所示:
import os
os.chdir('MyDirectory/nltk_data')
from nltk.book import *
它因错误而失败:
ImportError: No module named book
我想也许是工作目录导致问题,即使在上面的代码中添加os.getcwd()显示我在正确的工作目录中。如果我打开一个新的终端并尝试:
cd nltk_data
python mycode2.py
mycode2.py的样子:
from nltk.book import *
失败并出现同样的错误。我可以从终端运行脚本。
python four.py
其中four.py看起来像:
print 2+2
工作正常。 *似乎也不是问题,因为我也尝试了上面的特定项目,结果相同。似乎从终端运行的脚本中的X导入Y函数是有问题的,但是从终端的X导入Y起作用。我尝试了几种变体,例如:
import nltk
import nltk.book
如果我从脚本中请求它,那么“book”仍然是一个不存在的模块(但如果我从终端请求它,它又能正常工作)。
我尝试搜索类似的错误,并且有一些关于附加sys.path的内容,但我知道如何/为什么我会这样做?我也有些困惑,因为“book”不是我下载的nltk_data目录中任何文件或文件夹的名称。我真的不确定从哪里开始。
答案 0 :(得分:3)
你已经打了别的东西“nltk.py”。删除/重命名该文件和任何相关的已编译字节码文件。