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

从Sublime Text 2中运行Map/Reduce python程序,python,sublimetext2,mrjob,Python,Sublimetext2,Mrjob,我刚刚开始了一系列关于MapReduce和Hadoop的教程。设置说明要求在MRjob中使用名为Canopy的IDE。我都安装了,一切都正常。但是如果Canopy只是一个Python IDE,我就不能在它的位置使用任何东西(例如intellij或Sublime文本) 在升华文本中运行相同的python脚本时,出现以下错误: Traceback (most recent call last): File "../Rating-Counter.py", line 1, in <modul

我刚刚开始了一系列关于MapReduce和Hadoop的教程。设置说明要求在MRjob中使用名为Canopy的IDE。我都安装了,一切都正常。但是如果Canopy只是一个Python IDE,我就不能在它的位置使用任何东西(例如intellij或Sublime文本)

在升华文本中运行相同的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
我刚刚在MRjob中使用了pip安装,是否有地方可以进行自定义安装并将其放置在Sublime Text可以看到的位置?我有多个python版本,是不是pip为2.7而不是3.4安装了MRjob

更新:我已尝试使用
pip3安装MRjob
,但返回以下错误:

命令“python setup.py egg_info”在/private/var/folders/gj/h8lrdpmx7lg3bq2_9t9j5kbr0000gn/T/pip-build-le53azna/MRjob中失败,错误代码为1


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)您的计算机:您的_project UserName$),以告知您该虚拟环境处于活动状态。从现在起,使用pip安装的任何软件包都将放在venv文件夹中,与全局Python安装隔离

按常规安装软件包,例如:

$ pip install requests
如果您目前已在虚拟环境中完成工作,则可以停用它:

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

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

不过,过一段时间后,您可能会在整个系统中发现大量虚拟环境,您可能会忘记它们的名称或放置位置

引用自:


这将完全满足您的需要,并且针对同一台机器上的不同python需求而设计。它工作得很好。

IDE通常有一些额外的设置来告诉它要使用哪个python可执行文件,并使用系统路径变量来确定安装的python包的位置。很可能Sublime Text不知道您已安装的软件包从命令行运行以下命令的结果是什么<代码>导入mrjob;打印(mrjob.\uuuuu file.\uuuuuuu)?@MattDMo如果启动python3并运行代码,我会收到一个错误,说明没有安装mrjob。好的,所以它是与Python2.7一起安装的。@MattDMo那么有没有办法指定安装它的Python?@mikeb你确定这是一个很好的问题答案?通过向提问者扔一个链接或者扔一堵文字墙,你可能会把他弄糊涂。对这个问题再调整一点怎么样?这是一个永久的解决办法吗?“我必须为每个程序都这样做吗?”StillLearning to code这不是一个好的解决方案。你不需要一个virtualenv,你只需要一个合适的
.sublime构建文件。
$ deactivate