之前一直用 sublime text3 ,其中有一个叫 sublimeREPL 的插件可以提供 Python 的交互式运行界面,同时可以解决运行时不能从控制台输入的问题。
前段时间下了个 VScode ,感觉 VScode 的颜值更高一点儿,所以想继续用下去。在 VScode 里 Python 的插件看到大家都推荐“ Python ”这个插件,这个插件装上以后在 VScode 里可以对 Python 代码进行断点调试,但是我并没有找到交互式运行的输入位置,运行总会在 input 函数的位置停住。
想问一下 VScode 里是否有类似 sublime text3 的 REPL 的插件,或者可以实现 Python 的 IDLE 的功能的插件。
希望各位大神不吝惜赐教
1
bdbai 2016-08-20 00:03:34 +08:00 1
平时很少用 input ,还真没注意过这个问题。
有人给插件提了 issue https://github.com/DonJayamanne/pythonVSCode/issues/242 作者表示新功能已上线,我就用 “ Python Console App ” 试了一下, VSCode 报错 “调试适配器进程已意外终止”。 顺手翻了一下代码,吓尿.... https://github.com/DonJayamanne/pythonVSCode/blob/master/src/client/common/open.ts#L54 楼主心情好的话可以自己魔改这个文件: ~/.vscode/extensions/donjayamanne.python-0.3.21/out/client/common/open.js 把 43 、 44 行改成适合自己终端的样子,然后就可以用了。 |
2
strolling OP @bdbai 不好意思没找到怎么回复某一层的功能,只能 @了。。。
感谢回复,有个问题我没说清楚,我使用的系统是 Windows 系统,层主介绍的这个方法似乎只适用于 Linux 平台吧,我在我的 VScode 安转目录下没找到层主所说的那个文件。另外,‘ Python Console App ’是一个插件吗? |
3
bdbai 2016-08-20 10:53:30 +08:00 via Android
@strolling 点右上角箭头可以快速 @
手边没有 Windows 系统,把 gnome-terminal -x -c 改成 cmd /k 试下? 在你的用户 AppData 目录下找找,记得显示隐藏文件。 使用 Python 插件的时候,按 F5 它会生成几个调试配置,其中有一个叫“ Python Console App ”,在“调试”页左上方切换。这个配置的本意是调用一个外部终端来运行调试中的程序,但作者调皮地把它写死了 gnome-terminal 。 |
4
strolling OP @bdbai 感谢大神耐心的回复,我一开始找错位置了,原来是在 C 盘的用户目录下。
嗯,我找到那个文件了,对于 Windows 系统,应该是这几行吧 else if (process.platform === 'win32') { cmd = 'cmd'; args.push('/c', 'start'); if (opts.wait) { args.push('/wait'); } if (opts.app) { args.push(opts.app); } if (appArgs.length > 0) { args = args.concat(appArgs); } } 试了一下,在调试的时候用“ Python console App ”的确会弹出一个命令行窗口,但是不知道出了什么 bug ,没法儿输入,而且这个是在调试的时候设置一个断点才能弹出,直接运行的话还是没法执行 input 函数。 其实我对 input 没什么需求,因为在学用 python 进行数据分析,所以希望能有一个交互式的界面,能够写一行运行一行,观察每一个命令的效果,这方面感觉 Spyder 做得相当好,简直就是一个 matlab 。看来 VScode 还需要一段时间来完善 |
5
bdbai 2016-08-20 13:04:59 +08:00 via Android 1
@strolling 被那个 issue 带跑了...
我经常这么做:参数放进 launch.json 配置的 args 或 env 中,程序里面读。 在 vscode 里面按 Ctrl+` 可以调出内置命令行,然后直接运行程序。 |