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

本文介绍如何解决Sublime Text 2中Python编译时出现的UnicodeDecodeError错误。通过调整sublime-build配置文件及修改exec.py中的环境变量编码方式,确保Python文件能在Sublime Text 2中正确编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "encoding": "utf-8",
    "env": {"PYTHONIOENCODING": "cp936"}
}
在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行:

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

两种修改方案:

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

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

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

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


参考资料:

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

### 如何在 Sublime Text 中运行 Python 代码 要在 Sublime Text 中运行 Python 代码,可以通过多种方法实现。以下是几种常见的方式: #### 方法一:通过命令行运行脚本 如果希望直接从终端运行 Python 脚本,可以在命令行中执行以下操作[^1]: ```bash python script_name.py ``` 或者如果你的系统上同时安装了多个版本的 Python,则可能需要指定 `python3` 来运行脚本: ```bash python3 script_name.py ``` #### 方法二:配置 Sublime Text 的内置构建系统 Sublime Text 提供了一个内置的构建系统来运行各种编程语言的代码,包括 Python。 要使用此功能,请按照以下方式设置环境[^4]: 1. 打开你的 Python 文件。 2. 使用快捷键组合 **Ctrl+B** (Windows/Linux) 或者 **Cmd+B** (Mac),这会尝试默认调用系统的 Python 解释器来运行当前文件中的代码。 如果没有正确配置解释器路径,可能会遇到错误提示。因此建议手动调整构建系统: - 前往菜单栏选择 **Tools -> Build System -> New Build System...** - 创建一个新的 JSON 配置文件如下所示: ```json { "shell_cmd": "python -u \"$file\"", "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python" } ``` - 将该文件保存为 `Python.sublime-build` 并应用到项目中。 完成上述步骤之后再次按下对应的快捷键即可看到控制台输出位于编辑窗口底部区域显示的结果。 #### 方法三:利用插件增强体验(SublimeREPL) 为了获得更灵活的功能还可以考虑借助第三方工具扩展能力——比如安装名为 *SublimeREPL* 插件[^2]。这个插件允许用户在一个独立的新标签页里交互式地测试表达式的求值过程以及调试程序逻辑等复杂场景需求下的便利性提升显著。 具体做法如下: 1. 如果尚未启用 Package Control 功能的话先按需激活; 2. 接着搜索并安裝 “SublimeREPL” 组件本身; 3. 成功加载完毕重启软件生效后再试一次新的选项卡形式启动 IPython Shell 或标准 CPython REPL 实例连接至远程服务器端口等等高级特性支持均成为现实可能性之一[^5]。 --- ### 注意事项 当观察后台活动情况时发现存在两个相关联子进程实例正常现象不必担心它们分别代表父级管理单元与实际工作线程实体而已[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值