将Sublime Text 2软件包定向到正确的python安装

将Sublime Text 2软件包定向到正确的python安装,python,macos,sublimetext2,environment-variables,sublimetext,Python,Macos,Sublimetext2,Environment Variables,Sublimetext,我只想将Sublime Text 2包(SublimeREPL)引导到正确的python安装中——目前,它选择了错误的安装 这里的故事是Mac用户所熟悉的。MacOS附带了一个python安装,用于各种需要python的操作系统。像许多其他人一样,我不喜欢使用这个系统python(位于/system/Library/…),因为它通常已经过时,当然更新它不是一个好主意——它是Mac OS使用的一个工作python安装,更新有可能导致依赖于该安装的OS任务中断 但这是SublimeREPL软件包获取

我只想将Sublime Text 2包(SublimeREPL)引导到正确的python安装中——目前,它选择了错误的安装

这里的故事是Mac用户所熟悉的。MacOS附带了一个python安装,用于各种需要python的操作系统。像许多其他人一样,我不喜欢使用这个系统python(位于/system/Library/…),因为它通常已经过时,当然更新它不是一个好主意——它是Mac OS使用的一个工作python安装,更新有可能导致依赖于该安装的OS任务中断

但这是SublimeREPL软件包获取的版本:

Python 2.7.1 (r271:86832, Jun 25 2011, 05:09:01) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
我用于开发的版本(安装在/Library/Frameworks/中,并符号链接到/usr/local/bin)是:

升华2文本在其他地方获得了正确的版本,但使用升华程序包时除外,因此该程序包中的一个配置文件中必须有一个设置,允许我将升华程序指向正确的python

但是我找不到它

似乎我已经用尽了所有可能的选项,通过查看我的/Sublime Text 2/Packages/目录,这些选项必须位于以下任一位置:

SublimeREPL/

    SublimeREPL (OSX).sublime-settings
    SublimeREPL.sublime-settings

事实上,我在上面三个JSON文件中分别添加了以下内容,但没有任何效果:

{
    "default_extend_env": {"PATH": "/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin/python2.7:{PATH}"}
}

如果要使用
repl\u open
可以在配置中编辑
cmd
参数。我正在使用Ubuntu,它位于:

/home/stav/.config/sublime-text-2/Packages/SublimeREPL/config/Python/Main.sublime菜单

{"command": "repl_open",
"caption": "Python",
"id": "repl_python",
"mnemonic": "p",
"args": {
  "type": "subprocess",
  "encoding": "utf8",
  "cmd": ["/usr/local/bin/python", "-i", "-u"],
  "cwd": "$file_path",
  "syntax": "Packages/Python/Python.tmLanguage",
  "external_id": "python"
  }
},

@史蒂文·阿尔梅罗斯的解决方案对我不起作用

而是更改了以下目录中的一个参数:
packages/Python/Python.sublime build

下面的代码在那里可用。只需将cmd更改为brew python所在的目录

{
"cmd": ["/Library/Frameworks/Python.framework/Versions/2.7/bin/python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}

根据我的经验,修复专门为Sublime Text 2进程修补环境变量的版本混乱会更简单

我找到的唯一直接而愚蠢的解决方案是——为Sublime Text 2破解环境变量。这可以通过在文件夹中创建具有任意名称的.py文件来完成:

~/Library/Application Support/Sublime Text 2/Packages/User/
只需在那里添加所需的路径,所有插件都将使用这些设置。 在Rob Dodson的博客帖子中查看更多信息:
http://robdodson.me/blog/2012/05/14/hacking-the-path-variable-in-sublime-text/

示例.py:

import os

LOCAL = '/usr/local/bin:/usr/local/sbin:'

# Sublime's default path is
# /usr/bin:/bin:/usr/sbin:/sbin
os.environ['PATH'] += ':'
os.environ['PATH'] += LOCAL

print 'PATH = ' + os.environ['PATH']

明亮的我只能投一票并接受;尽管考虑到我自己永远也无法解决这个问题,你的答案更值得一提。就连ST2论坛也对此保持沉默。最好像你说的那样,在用户设置文件中设置环境变量;但是在wuub(或其他人)看到SublimeREPL代码之前,这个快速修复应该可以解决这个问题。很高兴你让er工作了。@doug如果答案真的值得你这么做的话,你可以随时增加一笔赏金,然后再奖励它。只是一张便条。此文件来自包本身,而不是用户配置。这样,下一次软件包升级将使您丢失此更改。在我的例子中,在Mac OS X下,
{“cmd”:[“/usr/local/bin/python”、“-i”、“-u”]}
的部分有
/usr/local/bin/python3
,因此迫使我使用
python3
。我想知道是否有一种方法可以从用户偏好(!)判断使用哪个二进制文件,而不仅仅是
$PATH
环境变量。当然,不删除Mac OS提供的Python。
default\u extend\u env
应该可以正常工作。您能检查一下
首选项->软件包设置->升华设置->设置-User
(~/.config/subgrame-text-2/Packages/User/subgramerepl.subgrame设置)中是否有任何内容吗?嗨,干得好。事实上,我经常使用Node、R和Python REPLs。我根据你的评论编辑了上面的答案。如您所见,我将相关路径添加到User/subgramerepl.subgrame-settings,但没有任何效果(这让我感到惊讶)。如果你知道我做错了什么,也许可以写一个答案&我会投票表决,我也会把它写在你的项目维基上,我想是“问题/解决”。现在请使用stav提供的解决方法。下周我将计划一个小型的Supreme[REPL | PTY]sprint,我一定会检查这里发生了什么:)我无法重现这个问题。设置
“default\u extend\u env”:{“PATH”:/usr/local/bin:{PATH}“
正确地将SubmiterePL指向了新的2.7.2版本。
~/Library/Application Support/Sublime Text 2/Packages/User/
import os

LOCAL = '/usr/local/bin:/usr/local/sbin:'

# Sublime's default path is
# /usr/bin:/bin:/usr/sbin:/sbin
os.environ['PATH'] += ':'
os.environ['PATH'] += LOCAL

print 'PATH = ' + os.environ['PATH']