Python空闲。自动完成/显示完成不起作用

Posted

技术标签:

【中文标题】Python空闲。自动完成/显示完成不起作用【英文标题】:Python IDLE. Auto-complete/Show completions not working 【发布时间】:2012-02-23 18:12:15 【问题描述】:

IDLE 对于何时真正显示自动完成菜单非常狡猾。最近它根本没有工作,或者更具体地说,它只在交互式会话期间工作。

我一直在使用 C 的代码块,并且已经习惯了非常好的自动完成功能,所以没有它们有点令人沮丧 - 特别是在尝试学习新框架以及什么类是时与哪些方法等相关联。

是否有一个简单的解决方法可以让 IDLE 自动完成功能再次正常工作?我正在使用python 2.7版。

是否有我应该研究的简单编辑器?我已经尝试过 Vim,它对于我的简单需求来说有点太重了,Ninja,我无法为任何事情工作,以及 Sublime text 2,我无法让我的 wxpython 东西玩。一个不错的选择是什么?任何类似于 Code Blocks 的东西都会很酷,不过,如果 IDLE 能够持续工作,我会非常满意!

要求澄清: 好的,所以看来我的一些术语可能倒退了。所谓非交互式,我的意思是,例如,右键单击 python 文件并选择“使用 IDLE 编辑”。这带来了我猜想可以被描述为文本编辑器的东西。您可以在此处输入所有代码。准备好后,然后按 F5 或选择运行,它会启动(我一直指的是)交互式终端。在这里,您可以输入代码,按回车键,并立即评估该代码。

我的问题是指前者,即您编辑代码的 IDLE 部分。有时在打字时,在 .它将显示可用的方法,或者在一个左括号之后它会给出预期值的提示。但问题是,有时它会做这些事情,有时却不会。

【问题讨论】:

ipython.org 使用 vim 甚至简单的 gedit @wim 抱歉,我可能在我的帖子中解释得很糟糕,但问题是自动完成确实以交互方式工作,但以交互方式工作。如果我只是在 IDLE 中输入,则自动完成功能不起作用。因此,我试图弄清楚如何在以 non 交互方式编码时使其工作。 哦,对了,对不起!在 python 中工作时,我没有发现对 IDE 的任何需求,所以无法为您提供帮助。 你确定这曾经以非交互方式工作吗? “仅在交互式会话期间有效”?你还能如何使用 IDLE?这是一个交互式工具,对吧?什么是 IDLE 的非迭代“会话”?运行脚本?这没有什么意义。你能更新这个问题并解释一下吗? 【参考方案1】:

到目前为止,我发现的唯一一件事是,如果 IDLE 的编辑会话与 python shell 连接(在问题中称为“交互模式”,即在尝试运行编辑的脚本之后),那么“非交互”IDLE可以根据交互式窗口中的值自动完成。例如,如果我输入

a = [];
a.appen

然后点击 它将什么都不做,但如果我之前输入过

a = []

在对应的python shell中,IDLE会正确自动补全。

所以我唯一的建议是在 python shell 窗口中导入具有相同名称的相同模块,以使它们对非交互式 IDLE 编辑器“可见”。

【讨论】:

即使您的脚本不完整(运行时会产生错误)也可以使用。谢谢你的提示。不幸的是,您必须在构建脚本时多次运行您的代码才能得到它。但是,随着您的代码变得更长,这将更加有用。在较长的代码中,您将倾向于使用先前定义的变量(您使用 F5 测试过的变量),因此在自动完成下可以使用更多的东西。【参考方案2】:

我在 IDLE 上遇到了同样的问题,因为我想学习 Qt,因此自动补全非常有用。

正如IDLE设置中所说,您可以使用“Control + Space”触发自动完成,例如在“QtGui.”之后。然后会打开一个菜单,您可以在其中通过箭头滚动条目。

【讨论】:

我还不能投票,但谢谢 user2366975!使用 Ctrl + Space 就像一个魅力。在 Windows 下 IDLE 相当快,但在我的 Mac 上,它需要很长时间才能让我选择自动完成。再见 TextWrangler,我将再次使用 IDLE。 所以为了让自动完成功能起作用,你需要先在 shell 中导入一个库。然后自动完成将提供函数/类(在 ctr+space 之后)和选项卡。【参考方案3】:

就我而言,我必须在编辑器上打开选项菜单 -> 扩展选项卡,并确保启用了自动完成和其他相关选项。他们实际上是,但只需点击“应用”,即使我不得不改变任何东西,对我来说都是诀窍。

【讨论】:

【参考方案4】:

有时这与您必须等待获得建议的时间有关。

当您在completions popup wait 转到options > extensions > general 时,您可以将其更改为大约 500 毫秒。 在我的例子中,默认是 2000 毫秒。

【讨论】:

【参考方案5】:

使用“空闲编辑器窗口”,您需要先保存并执行您的代码。 应用程序运行时,返回编辑器窗口以使用自动完成功能。

【讨论】:

没错,但问题已经以同样的方式回答了,六年后再重复也没有意义。

以上是关于Python空闲。自动完成/显示完成不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Windows 中 OpenCV-Python 的自动完成功能不起作用

jQuery自动完成功能不起作用?

我的 jquery 自动完成功能不起作用

Jquery自动完成换行符不起作用

Django JQuery 自动完成功能不起作用 - 没有显示,但 API URL 有效

页面刷新后地理自动完成功能不起作用