在Google App Engine上使用Python NLTK(2.0b5)

Rya*_*chi 17 python google-app-engine nlp nltk

我一直试图让NLTK(自然语言工具包)在Google App Engine上运行.我遵循的步骤是:

  1. 下载安装程序并运行它(一个.dmg文件,因为我正在使用Mac).
  2. 将nltk文件夹复制到python site-packages目录之外,并将其作为子文件夹放在我的项目文件夹中.
  3. 在包含nltk子文件夹的文件夹中创建一个python模块并添加以下行: from nltk.tokenize import *

不幸的是,在启动之后我得到了这个错误(请注意,这个错误在NLTK内部深处引发,我看到它用于我的python系统安装,而不是GAE项目的子文件夹中的那个):

 <type 'exceptions.ImportError'>: No module named nltk
Traceback (most recent call last):
  File "/base/data/home/apps/xxxx/1.335654715894946084/main.py", line 13, in <module>
    from lingua import reducer
  File "/base/data/home/apps/xxxx/1.335654715894946084/lingua/reducer.py", line 11, in <module>
    from nltk.tokenizer import *
  File "/base/data/home/apps/xxxx/1.335654715894946084/lingua/nltk/__init__.py", line 73, in <module>
    from internals import config_java
  File "/base/data/home/apps/xxxx/1.335654715894946084/lingua/nltk/internals.py", line 19, in <module>
    from nltk import __file__
Run Code Online (Sandbox Code Playgroud)

注意:这是上传到GAE时错误在日志中的显示方式.如果我在本地运行它我得到相同的错误(除了它似乎来自我的NLTK的网站包实例...所以没有区别)."xxxx"表示项目名称.

总结如下:

  • 我甚至想做什么?NLTK甚至可以在App Engine上运行吗?
  • 我错过了什么吗?那就是:将"nltk"复制到GAE项目是不够的?

编辑:修复拼写错误并删除不必要的步骤

sun*_*ang 8

oakmad已经成功地将SEVERAL NLTK模块部署到GAE.希望这可以帮助.但是,老实说,即使阅读了帖子,我仍然认为这不是真的.


Nic*_*son 4

这里的问题是nltk尝试进行递归导入:nltk/__init__.py导入时,它会导入nltk/internals.py,然后再次尝试导入nltk。由于nltk正在导入自身,因此它会失败并出现(相当无用的)错误。无论如何,他们所做的事情都很奇怪——像from nltk import __file__休息这样的事情并不奇怪。

这看起来像是 nltk 本身的问题——直接从 Python 控制台导入时它可以工作吗?如果是这样,他们一定在安装的版本中做了某种诡计。我建议询问 nltk 小组他们在做什么以及如何解决它。