2013-12-23 29 views
2

我正在运行Python 2.7.3和Mac OS 10.8.5。我从nltk.org下载了所有的软件包和数据,并且一次能够在终端一行中成功使用它们。我想写他自己的脚本,这似乎是一个问题。from X import Y在终端中工作,但不是从终端执行的脚本

如果我打开终端和类型:

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 

,仍然得到的是“书”是,如果我要求它从一个脚本(但同样,如果我要求它从工作正常,不存在一个模块终奌站)。

我试图寻找一个类似的错误,并有一些关于追加sys.path,但我理解如何/为什么我会这样做?我也有些困惑,因为“book”不是我下载的nltk_data目录中的任何文件或文件夹的名称。我真的不确定该从哪里出发。

+0

您是否通过pip安装软件包?或者直接将源代码下载到您的dekstop中? – Ifthikhan

回答

3

你已经调用了别的“nltk.py”。删除/重命名该文件和任何关联的编译字节码文件。

+1

这正是发生了什么事。重命名文件,一切正常完美!谢谢!! – wugology

相关问题