2012-04-01 14 views
1

すべての開発ツールをインストールしたLionのコピーがあります。 Python(2.7)とRuby(1.8)はうまく動作しています。私は、Pythonのための自然言語ツールキットをインストールして、それを試してみたPythonインタプリタであり、それはRubyPythonはOS X Lionでnltkをインポートできません

import nltk 
>>true 

だから、作品を作品ました。私もRubyPython gemをインストールしましたが、動作するようですが、はnltkモジュールが見つかりません。私は何か間違っている可能性があります。 In 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は、nltkモジュールがどのような形のpythonでも見つからないということを私に示しているようです(直接C APIへの呼び出しなので)。しかし、通訳者はそれをうまく見つけました。 RubyPythonは、しかし、できません。

また、Python2.7を使用するようにRubyPythonを強制しようとしましたが、変更はありません。

私には何が欠けていますか?

+1

パスを印刷してみます。何を手に入れますか?私はRubyPythonについてはわかりませんが、Pythonでは 'import sys; print sys.path'を実行します。 nltkがインストールされている場所と、そのパスがRubyPythonのsys.pathに表示されているかどうかを確認してください。そうでない場合は、sys.pathまたは$ PATHまたは$ PYTHONPATHに追加します。 –

+0

ええ、私は昨日それを理解することに終わったが、回答を投稿することができなかった。何らかの理由で、RubyPythonは別のパスを使用していました。私はパスをインポートし、NLTKの場所を追加してプレストにしました。 – jbrennan

答えて

1

これは簡単です!何らかの理由で、RubyPythonが私のPythonモジュールのために間違った場所を探していました。これは、RubyPythonスクリプトとPythonの両方でsysをインポートし、sys.pathを比較することによって検証されました。私は、Rubyスクリプトでsysのパスリストを取得し、純粋なPythonのパスから欠けていたものを追加することで修正しました。その後、NLTKを読み込むことができました。

関連する問題