我一直在尝试让NLTK (Natural Language Toolkit)在Google App Engine上工作。我遵循的步骤是:
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__
注意:这是上传到GAE时错误在日志中的样子。如果我在本地运行它,我会得到相同的错误(除了它似乎起源于我的NLTK的site-packages实例...所以没有区别)。"xxxx“表示项目名称。
因此,总结一下:
编辑:修复了拼写错误并删除了不必要的步骤
发布于 2009-08-17 12:15:05
这里的问题是nltk
正在尝试进行递归导入:当导入nltk/__init__.py
时,它会导入nltk/internals.py
,然后它会再次尝试导入nltk
。由于nltk
本身正在被导入,因此它会失败,并显示一个(相当无用的)错误。无论他们在做什么,都是非常奇怪的--像from nltk import __file__
breaks这样的事情并不奇怪。
这看起来像是nltk本身的问题--当直接从Python控制台导入时,它能工作吗?如果是这样的话,他们一定是在安装的版本中使用了某种诡计。我建议向nltk小组询问他们在做什么,以及如何解决这个问题。
发布于 2009-08-17 10:08:31
通过将的几个 NLTK模块部署到GAE,oakmad已经成功地工作了。希望这能有所帮助。但是,老实说,即使看了这篇文章,我仍然不认为这是真的。
发布于 2012-10-29 00:04:09
我已经使用MaxEnt树库标记器创建了NLTK 2.0.3 on github to run it on app engine;标记化和简单的POS机标记。
https://stackoverflow.com/questions/1286301
复制相似问题