如何在 VScode 中配置 Python 的交互式命令环境

2016-08-19 17:55:44 +08:00
 strolling

之前一直用 sublime text3 ,其中有一个叫 sublimeREPL 的插件可以提供 Python 的交互式运行界面,同时可以解决运行时不能从控制台输入的问题。

前段时间下了个 VScode ,感觉 VScode 的颜值更高一点儿,所以想继续用下去。在 VScode 里 Python 的插件看到大家都推荐“ Python ”这个插件,这个插件装上以后在 VScode 里可以对 Python 代码进行断点调试,但是我并没有找到交互式运行的输入位置,运行总会在 input 函数的位置停住。

想问一下 VScode 里是否有类似 sublime text3 的 REPL 的插件,或者可以实现 Python 的 IDLE 的功能的插件。

希望各位大神不吝惜赐教

13677 次点击
所在节点    程序员
7 条回复
bdbai
2016-08-20 00:03:34 +08:00
平时很少用 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 行改成适合自己终端的样子,然后就可以用了。
strolling
2016-08-20 10:16:58 +08:00
@bdbai 不好意思没找到怎么回复某一层的功能,只能 @了。。。

感谢回复,有个问题我没说清楚,我使用的系统是 Windows 系统,层主介绍的这个方法似乎只适用于 Linux 平台吧,我在我的 VScode 安转目录下没找到层主所说的那个文件。另外,‘ Python Console App ’是一个插件吗?
bdbai
2016-08-20 10:53:30 +08:00
@strolling 点右上角箭头可以快速 @

手边没有 Windows 系统,把 gnome-terminal -x -c 改成 cmd /k 试下?
在你的用户 AppData 目录下找找,记得显示隐藏文件。

使用 Python 插件的时候,按 F5 它会生成几个调试配置,其中有一个叫“ Python Console App ”,在“调试”页左上方切换。这个配置的本意是调用一个外部终端来运行调试中的程序,但作者调皮地把它写死了 gnome-terminal 。
strolling
2016-08-20 12:11:31 +08:00
@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 还需要一段时间来完善
bdbai
2016-08-20 13:04:59 +08:00
@strolling 被那个 issue 带跑了...
我经常这么做:参数放进 launch.json 配置的 args 或 env 中,程序里面读。
在 vscode 里面按 Ctrl+` 可以调出内置命令行,然后直接运行程序。
strolling
2016-08-20 13:28:21 +08:00
@bdbai 感谢解惑。还有一个问题想问问,为什么同样的字体显示效果在不同的编辑器里不一样,我喜欢使用 consolas 这个字体,感觉在 VScode 里面显示的结果要比 sublime text 和 notepad++舒服,这是什么原因导致的
bdbai
2016-08-20 14:07:48 +08:00
@strolling 我也不太清楚😂
VScode 是用 Electron 套的,估计 Chrome 有什么黑科技吧。
大小写好纠结...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/300482

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX