【发布时间】:2016-01-11 19:22:37
【问题描述】:
我刚刚开始了一个关于 map reduce 和 Hadoop 的教程系列。设置说明要求将名为 Canopy 的 IDE 与 MRjob 一起使用。我都安装了,一切正常。但是......如果 Canopy 只是一个 Python IDE,我不能在它的位置使用任何东西(例如 intellij 或 Sublime Text)吗?
当我在 Sublime Text 中运行相同的 python 脚本时,我收到以下错误:
Traceback (most recent call last):
File "../Rating-Counter.py", line 1, in <module> from mrjob.job import MRJob
ImportError: No module named mrjob.job
这是脚本:
from mrjob.job import MRJob
class MRRatingCounter(MRJob):
def mapper(self, key, line):
(userID, movieID, rating, timestamp) = line.split('\t')
yield rating, 1
def reducer(self, rating, occurences):
yield rating, sum(occurences)
if __name__ == '__main__':
MRRatingCounter.run()
我刚刚为 MRjob 使用了 pip install,有什么地方可以进行自定义安装并将其放在 Sublime Text 可以看到的地方吗?我有多个版本的python,会不会是pip为2.7而不是3.4安装了MRjob?
更新:我尝试使用 pip3 install MRjob 并返回此错误:
命令“python setup.py egg_info”失败,错误代码 1 在 /private/var/folders/gj/h8lrdpmx7lg3bq2_9t9j5kbr0000gn/T/pip-build-le53azna/MRjob
【问题讨论】:
-
IDE 通常有一些额外的设置来告诉它使用哪个 python 可执行文件,并使用系统 PATH 变量来确定你安装的 Python 包的位置。很可能 Sublime Text 不知道你安装的包
-
从命令行运行以下命令的结果是什么?
import mrjob; print(mrjob.__file__)? -
@MattDMo 如果我启动 python3 并运行代码,我会收到未安装 MRjob 的错误。
-
好的,所以它是用 Python 2.7 安装的。
-
@MattDMo 那么有没有办法指定为哪个 python 安装它?
标签: python sublimetext2 mrjob