崇高的文字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加载的插件。