Python模块导入错误 "ImportError: 没有名为mrjob.job的模块

4 投票
3 回答
12193 浏览
提问于 2025-04-16 07:11

系统: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 个回答

0

可以通过运行以下命令来安装mrjob这个包:
pip install mrjob
安装完成后,错误就会解决了。
在我这里是这样有效的。

2

我也遇到过同样的问题,我试过用 pip install mrjobsudo easy_install mrjob 来安装。看起来安装成功了,但当我运行一个简单的示例脚本时,却出现了导入错误。

我按照这个链接的说明解决了问题:http://pythonhosted.org//mrjob/guides/quickstart.html#installation

简单来说,我从github上克隆了源代码,然后运行了 python setup.py install。不过,我的问题可能和你的不一样,因为在我用pip安装和easy_install之后,mrjob的文件在我的site-packages目录里什么都没有。

2

这里有两个建议:

  1. 确保你在 site-packages 目录下安装的文件和文件夹没有权限问题。

  2. 如果你安装了另一个版本的 Python 2.6(除了系统自带的 /usr/bin/python2.6),要确保为这个版本单独安装了 easy_install。根据你的输出信息,几乎可以肯定你是用系统自带的 /usr/bin 下的 easy_install 安装的,这个是针对系统自带的 Python 的。最简单的方法是用新的 Python 安装 Distribute 包。

撰写回答