I have been trying to make the NLTK (Natural Language Toolkit) work on the Google App Engine. The steps I followed are:
- Download the installer and run it (a .dmg file, as I am using a Mac).
- copy the nltk folder out of the python site-packages directory and place it as a sub-folder in my project folder.
- Create a python module in the folder that contains the nltk sub-folder and add the line:
from nltk.tokenize import *
Unfortunately, after launching it I get this error (note that this error is raised deep within NLTK and I'm seeing it for my system installation of python as opposed to the one that is in the sub-folder of the GAE project):
<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__
Note: this is how the error looks in the logs when uploaded to GAE. If I run it locally I get the same error (except it seems to originate inside my site-packages instance of NLTK ... so no difference there). And "xxxx" signifies the project name.
So in summary:
- Is what I am trying to do even possible? Will NLTK even run on the App Engine?
- Is there something I missed? That is: copying "nltk" to the GAE project isn't enough?
EDIT: fixed typo and removed unnecessary step