У меня есть копия Lion со всеми установленными инструментами dev. Оба Python (2.7) и Ruby (1.8) работают нормально. Я установил набор инструментов Natural Language Tool для Python и попробовал его в интерпретаторе Python, и он работает
import nltk
>>true
Так что работает. Я также установил жемчужину RubyPython, и, похоже, он тоже работает, но он не может найти модуль nltk. Возможно, я делаю что-то неправильно. В irb:
require "RubyGems"
require "rubypython" #both true
RubyPython.start # true
n = RubyPython.import "nltk" # RubyPython::PythonError: ImportError: No module named nltk
c = RubyPython.import "cPickle" # works!
RubyPython.stop
Я не могу понять этого. Кажется, что PythonError указывает мне (потому что это просто вызов прямых API C), что модуль nltk не может быть найден с помощью любой формы python. Но интерпретатор находит это в порядке. RubyPython, однако, не может.
Я также пытался заставить RubyPython использовать python2.7, но никаких изменений.
Что мне не хватает?
Это просто! По какой-то причине RubyPython искал не то место для моих модулей Python. Это было подтверждено путем импорта sys
как в скрипте RubyPython, так и в Python и сравнении sys.path
. Я закончил тем, что исправил его, взяв список путей sys в скрипте Ruby и добавив, что не было на чистом пути Python. Тогда я мог бы загрузить NLTK.
import sys; print sys.path
. Проверьте, где установлен nltk, и отображается ли этот путь в sys.path в RubyPython. Если нет, добавьте его в sys.path или в ваш $ PATH или $ PYTHONPATH.