sublime ( Ctrl + B)调用python控制台运行python脚本无反应/控制台空白

 首先确定已经配置好 sublime-build 文件。下面给出我的配置文件:

  1. {  
  2.     "cmd": ["python", "-u", "$file"],  
  3.     "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",  
  4.     "selector": "source.python",  
  5.     "encoding": "utf-8",  
  6.     "env": {"PYTHONIOENCODING": "cp936"}  
  7. }  
在sublime text 2中点Preference -> Browse Packages,然后在Python目录下找到Python.sublime-build 文件,用 sublime 打开编辑即可。
安装pytho编译器后没有配置系统环境变量的,需要在上面的文件中加上Path条目。后面两个条目(“encoding”和“env”)不加也是可以的。


Sublime Text 2  ctrl+b 如果出现运行为空白,按ctrl+`来显示错误。


完整的错误是:

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字符集

解决方案:

找到配置文件目录位置((在sublime text 2中点Preference -> Browse Packages)在Default目录下找到exec.py,编辑即可;可以参考原作者的另一篇博文修改sublime Text 的默认配置文件位置

其中的Packages\Default\exec.py,打开编辑

找到第41-42行:

  1. for k, v in proc_env.iteritems():  
  2.  proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())  

两种修改方案:

1、果断删掉!(你没看错,就是这样)

2、对它进行异常处理,避免它出错时停止程序运行就像这样:

  1. for k, v in proc_env.iteritems():  
  2.        try:  
  3.            proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())  
  4.        except UnicodeDecodeError:  
  5.            print "Encoding error..."  
  6.            print "VARIABLE: ", k, " : ", v  

然后你在尝试对pyhon或是其他程序的编译,就会发现切正常了!


参考资料:

http://384444165.iteye.com/blog/1798107

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值