系统: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有些新意;任何帮助将非常感激。谢谢!
答案 0 :(得分:2)
两个建议:
确保site-packages
目录中已安装的鸡蛋和文件没有任何文件或目录权限问题。
如果您安装了另一个Python 2.6实例(除了/usr/bin/python2.6
中Apple提供的实例),请确保为其安装了单独版本的easy_install
。按原样,您的输出表明它几乎可以肯定使用Apple提供的easy_install
/usr/bin
来安装,该{{1}}用于Apple提供的Python。最简单的方法是使用新的Python安装Distribute包。
答案 1 :(得分:1)
我遇到了同样的问题,我尝试了pip install mrjob
,sudo easy_install mrjob
。看起来它安装成功,但是当我运行一个简单的示例脚本时,我得到了导入错误。
我按照http://pythonhosted.org//mrjob/guides/quickstart.html#installation上的说明开始工作。
简而言之,我从github克隆了源代码并运行python setup.py install
。不过,我的问题可能与你的不一样。在运行pip-install和easy_install之后,我的site-packages目录中没有任何内容用于mrjob。