我在Eclipse中使用PyDev作为我的Python编辑器。它在功能集方面很好。一切都很好,除了一件非常讨厌的事情:
代码完成本身很快。当我按下Alt + Space时,窗口几乎立即弹出,所有选项都在那里。选中顶部的选项。 然后麻烦。详细描述直到约5-10秒才出现。所有这些时间CPU都在最大负载下工作,并且接口没有响应。所有处理器都被Eclipse Java进程占用(生成的Python进程似乎空闲)。然后弹出一个黄色窗口,它包含的只是所选函数/变量的Python代码。所有连续细节都会立即显示。当我关闭完成窗口时(例如,通过接受其中一个选项并再次要求完成),该过程重复进行。这让我很疯狂。
到目前为止我已经尝试过了:
我使用的版本是Eclipse Helios,因为我上次检查某些扩展时尚未移植到最新版本。
有没有人观察过类似的问题?有人能绕过它吗?有关如何调试它并提交合理的错误报告的一般想法可能吗?其他值得检查的东西。
任何解决方法都不如完全关闭完成?
谢谢!
修改
我也注意到HTML / CSS编辑器中类似弹出窗口的问题。它看起来有点相似(一个黄色的窗口,里面有一些文字),它也需要很长时间才能显示出来。不知道这是否相关,但可能是。
修改(2):
好的,不,我已经开始全新安装最新的Eclipse Indigo,除了PyDev之外没有任何额外的插件,问题仍然存在。好像我必须寻找新的IDE。
答案 0 :(得分:2)
您使用的是哪个版本的Java?
如果您使用的是Windows 7,则更高版本的Java(我认为6+)将默认为IPv6。 这可能会导致问题,因为Python可能需要IPv4。
无论如何,由于我遇到了这个问题,我尝试禁用
但它仍然悬挂着。
Pal关于“ipv4利用率”的回答引发了我对“我更喜欢”IPv4解决的另一个问题的记忆。
请参阅http://docs.oracle.com/javase/1.4.2/docs/guide/net/ipv6_guide/
您要做的是编辑您的eclipse.ini并在vmargs部分添加“-Djava.net.preferIPv4Stack = true”
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
...
-vmargs
-...
-Djava.net.preferIPv4Stack=true
...
我不再挂起。
答案 1 :(得分:0)
您是否有机会提供发生这种情况的代码(并将其添加到错误报告中,请参阅:http://pydev.org/about.html了解链接)?
我每天都在使用PyDev和一些非常大的项目并且没有这个问题,所以,它可能是你代码中的一些特定构造或场景 - 或者你可能只是给了Eclipse足够的内存(这将使垃圾收集器工作得更多),在这种情况下,请看一下:What are the best JVM settings for Eclipse?(具体来说,提高你的-Xmx标志,尽管你也可以使用其他提示)。
如果您无法提供可重现的方案,另一种选择是获取分析器(即:YourKit java分析器有15天免费,这在这种情况下会有所帮助),在分析器中运行该用例并传递了在这种情况下发生的事情的快照(如果是这种情况,请在pydev.org上打开一个错误报告,我可以帮助你)。
答案 2 :(得分:0)
我从pydev.org常见问题解答得到了这个,它对我来说很好。
当我完成代码完成时,PyDev会挂起,我该怎么办?
PyDev在java方面完成大部分工作,但是一些信息只能从python端获取(主要是内置),因此,为了获取该信息,PyDev创建了一个shell并通过套接字与它通信。
发生这种情况时的主要问题是:
阻止与shell的通信的防火墙
在Linux中,某些内核不允许使用ipv4,这可能会导致PyDev失败。
要启用它,请执行:echo 0>的/ proc / SYS /净/ IPV6 / bindv6only
这取决于代码完成首选项中的“连接shell的超时”(窗口>首选项> PyDev>代码完成)
如果无效,请报告错误(同时,检查错误日志中是否有任何内容(窗口> show view> PDE Runtime>错误日志)和eclipse'.log',它位于在工作区位置的.metadata文件夹中。