我刚刚开始了关于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失败
答案 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要求。它很棒。