👨‍💻 只是玩玩 | JUST FUN

解决SublimeText不能使用build编译

这几天都出现了这个问题,起初以为是我系统设置的问题虽然上网查了但是可能是因为搜索的关键字不对没有找到解决方案。搞的我编译文件都是手动打开终端然后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