4

システム: Mac OSX 10.6.5、Python 2.6

以下のpythonスクリプトを実行しようとしています:

from mrjob.job import MRJob

 class MRWordCounter(MRJob):
  def mapper(self, key, line):
      for word in line.split():
          yield word, 1

  def reducer(self, word, occurrences):
      yield word, sum(occurrences)

if __name__ == '__main__':
    MRWordCounter.run()

次のエラーが表示されます。

:~ vskarich$ python mrjob_test.py < words
Traceback (most recent call last):
  File "mrjob_test.py", line 1, in <module>
   from mrjob.job import MRJob
  ImportError: No module named mrjob.job

私は easy_install を次のように使用していました。

sudo easy_install mrjob

このコマンドは必要な .egg ファイルをダウンロードし、Python の site-packages ディレクトリは次のようになります。

:~ vskarich$ cd /Library/Python/2.6/site-packages

:site-packages vskarich$ ls

PyYAML-3.09-py2.6-macosx-10.6-universal.egg  
easy-install.pth
README       
mrjob-0.2.0-py2.6.egg
boto-2.0b3-py2.6.egg     
simplejson-2.1.2-py2.6-macosx-10.6-universal.egg

私はPythonに少し慣れていないので、ここで何をすべきかわかりません。どんな助けでも大歓迎です。ありがとうございました!

4

2 に答える 2

2

2つの提案:

  1. ディレクトリにインストールされているeggおよびファイルに対するファイルまたはディレクトリのパーミッションの問題がないことを確認してくださいsite-packages

  2. Python 2.6の別のインスタンス(にAppleが提供するもの以外/usr/bin/python2.6)をインストールした場合は、そのインスタンス用に別のバージョンをインストールしたことを確認してくださいeasy_install。現状では、出力は、Appleが提供するPython用のAppleが提供easy_installするものを使用してほぼ確実にインストールされたことを示しています。/usr/binこれを行う最も簡単な方法は、新しいPythonを使用してDistributeパッケージをインストールすることです。

于 2010-11-17T00:11:45.333 に答える
2

私は同じ問題を抱えていましpip install mrjobsudo easy_install mrjob。うまくインストールできたように見えたのですが、簡単なサンプルスクリプトを実行したところ、インポートエラーが発生しました。

http://pythonhosted.org//mrjob/guides/quickstart.html#installationの指示に従って動作するようにしました。

簡単に言うと、github からソースコードをクローンして実行しましpython setup.py installた。ただし、私の問題はあなたの問題とは異なる場合があります。pip-install と easy_install を実行した後、mrjob の site-packages ディレクトリには何もありませんでした。

于 2014-11-14T18:18:51.217 に答える