2010-11-16 227 views
3

操作系统:Mac OSX 10.6.5,Python 2.6中Python模块导入错误 “导入错误:没有模块名为mrjob.job”

我尝试运行下面的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像这样:

须藤的easy_install mrjob

此命令下载所需的文件.egg,我的站点包蟒蛇目录如下:

:~ 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 

我不知道,因为我有点新的蟒蛇在这里做什么;任何帮助将非常感激。谢谢!

+2

除非您使用python而不是2.6版本运行您的脚本,否则每件事情都会从这里看起来很好,请在导入之前在脚本的第一行中执行此操作; __import sys;打印sys.path__这会给你从python搜索包的地方得到PYTHONPATH – mouad 2010-11-16 23:35:18

回答

2

两个建议:

  1. 确保您不必为安装的鸡蛋和文件在site-packages目录中的任何文件或目录的权限问题。

  2. 如果您已经安装了Python 2.6的另一个实例(除了苹果提供的一个在/usr/bin/python2.6),确保你已经安装的easy_install一个单独的版本吧。现在,您的输出结果表明,它几乎可以肯定使用Apple提供的easy_install安装在/usr/bin中,该版本适用于Apple提供的Python。最简单的方法是使用新的Python安装Distribute软件包。

1

我有同样的问题,我试过pip install mrjobsudo easy_install mrjob。它看起来像安装成功,但是当我运行一个简单的示例脚本时,我得到了导入错误。

我按照http://pythonhosted.org//mrjob/guides/quickstart.html#installation的指示使它工作。

简而言之,我克隆了github的源代码并运行了python setup.py install。不过,我的问题可能与你的不同。运行pip-install和easy_install后,我的站点包目录中没有任何mrjob文件。

相关问题