sublime创建交互式python环境及调试

2020-04-01这一天写了一篇关于sublime如何配置成各种开发环境的文章,C语言、C++、Python等。然而后来发现配置的Python开发环境不能进行交互式,比如不能使用input函数获取用户输入。然后就开始百度,度了很久,很多相似的文章,网络越来越乱了,随便转载,真恶心。

开始进入正题

第一步

刚开始,百度到的都是要先安装sublimeREPL这个插件,确实要安装,然后安装好后,那些垃圾博客就开始说明怎么用,没有一些实质性的讲解,事实是会遇到很多其它问题。
遇到的博客都是安装好sublimeREPL后执行Python-RUN current file

交互式界面打是打开了,但是报了一个错误,就是没有找到python解释器。虽然我配置过python解释器,但是那个是编译系统中进行配置的,而这个需要对sublimeREPL所使用的解释器进行配置。百度了好久都没有一篇博客说明,最后终于发现了一篇,才慢慢搞明白是怎么回事。[参看](https://www.jianshu.com/p/561ab6d620b4)

第二步

在sublime中通过浏览插件进入到插件安装的目录,如下:

接着依次进入到SublimeREPL、config中,出现以下界面:

仔细观察会发现这些就是第一幅图中sublimeREPL中对应的各种交互式环境。因此我们可以创建不同版本的python环境,下面我们就来创建python35的交互式环境(编译系统中我也是用python35来执行python环境的)

第三步-创建一个python35的交互式环境

  1. 在config文件夹下创建一个文件夹取名为ython35,把Python文件夹下的所有文件复制一份到Python35
  2. 然后打开Default.sublime-commands,将里面出现的所有python替换成python3.5
  3. 打开Menu.sublime-menu,除了"syntax": "Packages/Python/Python.tmLanguage",里面的python不变(使用软件自带的python语法规则)
  4. 注意:要更换掉Menu.sublime-menu文件中"cmd"的值,即python解释器路径,选择python35的路径(其实这里才是创建python35环境的核心)。"cmd"默认的值是["python", "-i", "-u","$file_basename"],要将列表中的"python"改为我们要使用的python解释器路径。
  5. 保存,然后在第一幅图中会看到多了一个python35的选项。ok,完美

第四步-使用创建好的交互式环境

  1. 绑定快捷键
    首选项-->快捷键设置,然后弹出新的串口,分为两页。左边页为软件默认的快捷键、右边页为用户自定义快捷键,可以更改。我在里面添加如下代码实现F5以交互式python环境运行代码,F8可以进入调试模式
[
    {
    "keys": ["f5"],
    "caption": "SublimeREPL: Python35 - RUN current file",  # 其实就相当于手动在菜单栏中选择sublimeREPL-->Python35-->RUN current file
    "command": "run_existing_window_command",
    "args": {
        "id": "repl_python_run",
        "file": "config/Python35/Main.sublime-menu"}
    },
    {
    "keys": ["f8"],
    "caption": "SublimeREPL: Python35 - PDB current file",
    "command": "run_existing_window_command",
    "args": {
        "id": "repl_python_pdb",
        "file": "config/Python35/Main.sublime-menu"}
    },   
]
  1. 编写python程序,按下F5,进入到交互式界面,重点讲F8,如何单步调试
    按下F8,进入到调式窗口,如下:

    对了,如何实现两个文件并列显示在菜单栏中---视图---布局---选择各种布局
    右边就是按下F8后弹出的调试窗口(注意看出现了Pdb)。如何调试了,这个就要学一些调试命令了。具体可百度学习pdb调试命令和其机制(分为侵入/非侵入方式),这里推荐两篇关于命令的文章:https://blog.csdn.net/qingkong1994/article/details/80038199 及https://www.zhihu.com/tardis/sogou/art/37294138
    常用命令:b、l、ll、n、c、s。效果如下:

总结

  1. 现在回想起来,只是那些博客没有说明白,我没有成功的原因是没有替换掉"cmd"的值,即python解释器的路径
  2. 编译系统中我创建的python35环境不能进行交互式运行
  3. 通过sublimeREPL,在其config文件夹下创建自己需要的交互式环境
赞赏