解决 SublimeText 不能使用 build 编译

解决 SublimeText 不能使用 build 编译

June 30, 2014

这几天都出现了这个问题,起初以为是我系统设置的问题虽然上网查了但是可能是因为搜索的关键字不对没有找到解决方案。搞的我编译文件都是手动打开终端然后 cd 进入项目目录然后用‘python xx.py’,如此繁琐简直不能忍。。。今天终于忍无可忍的弄出来错误信息再次尝试找一找解决方案,很庆幸的是这次似乎用对了关键字。

有网友说是 SublimeText 自身对中文支持不好,如果项目路径中存在中文的话就会出现这种情况。虽然我出问题之前的确用的是中文目录,但是我更改为英文目录之后还是不行。后我把运行程序时控制台丢出的 bug 信息:

Traceback (most recent call last):
File ".\sublime_plugin.py", line 325, in run_
File ".\exec.py", line 145, in run
File ".\exec.py", line 42, in init
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc0 in position 9: ordinal not in range(128)

查询之后在一网友博客中说道似乎是 Packages\Default 目录下的 exec.py 在编辑环境变量,但是环境变量中的字符集确少了 ascii 字符集,只要干掉出错的的代码或者进行容错处理之后就可以正常编译了。具体操作如下:

1. 打开.config 目录,这个目录在 ubuntu 下是在 home 的一个隐藏文件夹

2. /home/qing/.config/sublime-text-2/Packages/Default 然后进入这个路径在 Default 文件夹里找到上面出错的这个 exec.py 文件。

3. 定位到 42 行然后吧 41,42 也就是如下代码,把这两行代码删掉或者用 try 包起来容错处理都可以

for k, v in proc_env.iteritems():

proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

或者进行容错处理

for k, v in proc_env.iteritems():
     try:
         proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
     except UnicodeDecodeError:
          print ‘Encoding error’

引用:http://www.07net01.com/zhishi/170758.html

加入评论