47

我正在使用 brew 在 /usr/local/bin/ 中安装 python (2.7.2) 但是,默认系统 python (2.7.1) 是在执行的/usr/bin/,这似乎是因为它不遵守任何bash PATH 环境变量。此外,它找不到我的模块,因为它们安装在/usr/local/lib/python:/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages.

我一直在尝试以下方法Python.sublime-settings,但它不起作用:

{
"path": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
"env": ["PYTHONPATH", "/usr/local/lib/python:/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages"],
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}

如何让 Sublime Text 服从这些环境变量?

4

4 回答 4

62

env 需要是一个 JSON 对象,或者是字典,如果你愿意的话,像这样:

"env":
{
    "PYTHONPATH":"/usr/local/lib/python:/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages"
},
于 2012-03-29T06:10:14.723 回答
14

我通过执行以下操作在系统范围内设置路径来获得它:

## PATH
export PATH=/usr/local/bin:/usr/local/share/python:$PATH

## PYTHON
export PYTHONPATH=/usr/local/lib/python:$PYTHONPATH

# make systemwide
launchctl setenv PATH $PATH
launchctl setenv PYTHONPATH $PYTHONPATH

编辑:该死的,这对 python 不起作用,只适用于 PYTHONPATH,当我尝试它时,它仍然给出错误的 python。用于检查 python 二进制位置的代码:

import sys, os
print os.path.dirname(sys.executable)

Edit2:通过在 Python.sublime-build 中硬链接到正确的 python 二进制文件来解决这个问题:

{
    "cmd": ["/usr/local/bin/python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

编辑3:

os.environ通过在脚本顶部打印也可以更轻松地调试 PYTHONPATH 变量问题。Sublime Text 2 变量名显然不适用于“env”。

于 2011-12-20T12:05:06.390 回答
9

很抱歉碰到一个旧帖子,但如果人们登陆这个页面寻找一种方法让 sublime2 使用自定义 $PATH 以便插件(例如 shell 插件)使用您当前的系统 $PATH 这对我有用:

创建一个文件(插件):

~/Library/Application Support/Sublime Text 2/Packages/User/Any_ol_name.py

然后将此代码粘贴到:

import os

# Tweak line below as needed for your $PATH
LOCAL = '/usr/local/bin:/usr/local/sbin'

# Sublime's default path is
# /usr/bin:/bin:/usr/sbin:/sbin
# it'll be prepended to your custom one
os.environ['PATH'] += ':'
os.environ['PATH'] += LOCAL

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

在这里发布原始代码..

这个插件将在你启动 Sublime Text 2 时加载,我个人使用它来运行 shell 命令,就像我从终端一样,并修复一些由于路径变量错误而没有加载的插件。

于 2013-05-25T18:26:35.997 回答
0

这是一篇非常老的帖子,但我来到这里寻找 Sublime Text 3 的解决方案。以防万一人们也来到这里,快速的解决方案是进入Preferences.sublime-settings并添加:

"additional_path_items": [
    "/path/to/add/1",
    "/path/to/add/2",
],
于 2020-02-10T01:29:29.727 回答