Pythonモジュールインポートエラー「ImporterRor:mrjob.jobという名前のモジュールなし」
質問
システム: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
私はyeasy_installのように使用していました:
sudo easy_install mrjob
このコマンドは必要な.eggファイルをダウンロードしました、そして、Pythonの私のサイトパッケージディレクトリは次のようになります:
:~ 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にやや新しいので、ここで何をすべきかわかりません。どんな助けも大歓迎です。ありがとうございました!
解決
2つの提案:
インストールされた卵やファイルのファイルまたはディレクトリの権限の問題がないことを確認してください
site-packages
ディレクトリ。Python 2.6の別のインスタンスをインストールした場合(Appleがサプリしたもの以外に
/usr/bin/python2.6
)、個別のバージョンをインストールしていることを確認してくださいeasy_install
それのための。現状では、出力はApple-Suppliedを使用してほぼ確実にインストールされたことを示していますeasy_install
の/usr/bin
これは、Apple-Supplied Python用です。それを行う最も簡単な方法は、 分配 新しいPythonを使用したパッケージ。
他のヒント
私は同じ問題を抱えていました、私は試しました pip install mrjob
, sudo easy_install mrjob
. 。正常にインストールされているように見えましたが、簡単な例のスクリプトを実行したとき、インポートエラーが発生しました。
次のような指示に従って動作させました。 http://pythonhosted.org//mrjob/guides/quickstart.html#installation.
一言で言えば、私はgithubからソースコードをクローンして実行しました python setup.py install
. 。しかし、私の問題はあなたとは異なるかもしれません。 PIP-InstallとEasy_Installを実行した後、MRJOB用のサイトパッケージディレクトリには何もありませんでした。