Python IDLE 自动补全/显示完成项不起作用

19 投票
5 回答
58012 浏览
提问于 2025-04-17 12:04

IDLE在显示自动补全菜单时总是很不稳定。最近它根本不工作,或者更准确地说,只在交互式会话中有效。

我一直在用Code Blocks写C语言,已经习惯了它很不错的自动补全功能,所以没有这些功能让我有点沮丧,尤其是在学习一个新框架时,想知道哪个类和哪些方法相关等等。

有没有简单的方法可以让IDLE的自动补全功能恢复正常?我现在用的是Python 2.7。

有没有简单的编辑器可以推荐?我试过Vim,但对我来说有点复杂;Ninja我也没能用上;Sublime Text 2我又无法让它和我的wxpython配合使用。有没有什么好的选择?如果能有类似Code Blocks的编辑器就太好了,不过如果IDLE能稳定工作我也会很满意!

请求澄清:好的,看来我可能把一些术语搞混了。所谓非交互式的意思是,比如说,右键点击一个Python文件,选择“用IDLE编辑”。这会打开一个我想可以称作文本编辑器的界面。在这里你可以输入所有代码。准备好后,按F5或者选择运行,它就会启动(我所说的)交互式终端。在这里你可以输入代码,按回车,立刻看到代码的执行结果。

我问的问题是关于IDLE的前半部分,也就是你编辑代码的地方。有时候在输入代码时,输入一个点(.)后会显示可用的方法,或者在输入一个左括号后会给出期望的值的提示。但问题是,有时候它会这样做,有时候又不会。

5 个回答

3

在使用“IDLE编辑器窗口”时,你需要先保存并运行你的代码。应用程序正在运行时,返回到编辑器窗口就可以使用自动补全功能了。

12

我也遇到过同样的问题,使用IDLE是因为我想学习Qt,而自动补全功能对我来说非常有用。

正如IDLE的设置中所说,你可以通过按“Control + Space”来触发自动补全,比如在输入“QtGui.”之后。这样就会弹出一个菜单,你可以用箭头键来浏览里面的选项。

15

到目前为止,我发现的唯一一点是,如果IDLE的编辑会话和Python的命令行窗口连接在一起(在这个问题中称为“交互模式”,也就是在尝试运行编辑过的脚本之后),那么“非交互模式”的IDLE就可以根据交互窗口中的值来自动补全。例如,如果我输入

a = [];
a.appen

然后按下< Tab >,它不会有任何反应,但如果我之前在相应的Python命令行窗口中输入了

a = []

那么IDLE就会正确地进行自动补全。

所以我唯一的建议是在Python命令行窗口中导入相同名称的模块,这样可以让它们在非交互模式的IDLE编辑器中“可见”。

撰写回答