崇高的文字2:自定义PATH和PYTHONPATH

我正在使用在/ usr / local / bin /中安装python(2.7.2)的brew,但是默认的系统python(2.7.1)是在/usr/bin/ ,这似乎是因为它没有执行“服从任何bash PATH环境variables。 另外,它无法find我的模块,因为它们安装在/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" } 

我如何使崇高的文本服从这些环境variables?

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

 "env": { "PYTHONPATH":"/usr/local/lib/python:/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages" }, 

我通过执行以下操作来设置我的系统path:

 ## 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) 

编辑2:通过硬链接到Python.sublime-build中正确的Python二进制文件修复:

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

编辑3:

debuggingPYTHONPATHvariables的问题可以通过在脚本的顶部打印os.environ变得更容易。 Sublime Text 2variables名显然不适用于'env'。

对不起,撞到一个旧的post,但如果人们登陆这个页面寻找一种方法来使sublime2使用自定义的$ PATH所以插件(例如一个shell插件)使用您当前的系统$ PATH这工作对我来说:

创build一个文件(插件):

 ~/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的时候加载,我个人使用它来像terminal一样运行shell命令,修复一些由于pathvariables不好而导致的exception加载的插件。