2010-11-16 223 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文件。

相關問題