从Sublime Text 2运行Map / Reduce python程序

时间:2016-01-11 19:22:38

标签: python sublimetext2 mrjob

我刚刚开始了关于map reduce和Hadoop的教程系列。设置说明要求使用名为Canopy with MRjob的IDE。我已经安装了两个,一切正常。但是......如果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()

我刚刚使用了pip install for MRjob,有什么地方我可以自定义安装并把它放在Sublime Text可以看到的地方吗?我有多个版本的python,是不是pip安装了MRjob for 2.7而不是3.4?

更新:我尝试使用pip3 install MRjob返回错误:

  

命令&#34; python setup.py egg_info&#34;在/ private / var / folders / gj / h8lrdpmx7lg3bq2_9t9j5kbr0000gn / T / pip-build-le53azna / MRjob中错误代码1失败

1 个答案:

答案 0 :(得分:-2)

<强> VIRTUALENV:

virtualenv是一个创建独立Python环境的工具。 virtualenv创建一个文件夹,其中包含使用Python项目所需的所有必需的可执行文件。

通过pip安装virtualenv:

$ pip install virtualenv

基本用法 为项目创建虚拟环境:

$ cd my_project_folder
$ virtualenv venv

virtualenv venv将在当前目录中创建一个包含Python可执行文件的文件夹,以及可用于安装其他包的pip库的副本。虚拟环境的名称(在这种情况下,它是venv)可以是任何东西;省略名称会将文件放在当前目录中。

这会在您运行命令的目录中创建Python的副本,并将其放在名为venv的文件夹中。

您也可以使用您选择的Python解释器。

$ virtualenv -p /usr/bin/python2.7 venv

这将使用/usr/bin/python2.7

中的Python解释器

要开始使用虚拟环境,需要激活它:

$ source venv/bin/activate

当前虚拟环境的名称现在将显示在提示的左侧(例如(venv)Your-Computer:your_project UserName $),以通知您它处于活动状态。从现在开始,使用pip安装的任何软件包都将放在venv文件夹中,与全局Python安装隔离。

照常安装软件包,例如:

$ pip install requests

如果您暂时在虚拟环境中工作,可以将其停用:

$ deactivate

这将使您回到系统的默认Python解释器及其所有已安装的库。

要删除虚拟环境,只需删除其文件夹即可。 (在这种情况下,它将是rm -rf venv。)

但是,过了一段时间,您可能最终会在系统中散布着许多虚拟环境,并且可能会忘记他们的名字或放置它们的位置。

参考:

http://docs.python-guide.org/en/latest/dev/virtualenvs/

这将完全符合您的要求,并且可以在同一台机器上满足不同的python要求。它很棒。