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
我使用了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还不是很熟悉,不知道接下来该怎么做;任何帮助都非常感谢。谢谢!
3 个回答
可以通过运行以下命令来安装mrjob这个包:
pip install mrjob
安装完成后,错误就会解决了。
在我这里是这样有效的。
我也遇到过同样的问题,我试过用 pip install mrjob
和 sudo easy_install mrjob
来安装。看起来安装成功了,但当我运行一个简单的示例脚本时,却出现了导入错误。
我按照这个链接的说明解决了问题:http://pythonhosted.org//mrjob/guides/quickstart.html#installation。
简单来说,我从github上克隆了源代码,然后运行了 python setup.py install
。不过,我的问题可能和你的不一样,因为在我用pip安装和easy_install之后,mrjob的文件在我的site-packages目录里什么都没有。
这里有两个建议:
确保你在
site-packages
目录下安装的文件和文件夹没有权限问题。如果你安装了另一个版本的 Python 2.6(除了系统自带的
/usr/bin/python2.6
),要确保为这个版本单独安装了easy_install
。根据你的输出信息,几乎可以肯定你是用系统自带的/usr/bin
下的easy_install
安装的,这个是针对系统自带的 Python 的。最简单的方法是用新的 Python 安装 Distribute 包。