我正在尝试使用Eclipse Oxygen中的PyDev创建一个项目,每当我开始输入时,Eclipse都会停止响应。它似乎并不是因为完成,它在Java项目中运行良好,并且能够建议import
和其他关键字。我在冻结时键入for循环,通常会在range
关键字的一半左右。我已经多次重启Eclipse并尝试Java而没有问题。我正在运行Java 1.8.0_144,Python版本3.6.2和Eclipse版本4.7.0。
任何建议都将不胜感激。
在日志文件中,这是最近的错误:
java.lang.RuntimeException: Attempt: 4 of 5 failed, trying again...(socket connected: still null) at org.python.pydev.core.log.Log.log(Log.java:54) at org.python.pydev.editor.codecompletion.shell.AbstractShell.startIt(AbstractShell.java:353) at org.python.pydev.editor.codecompletion.shell.ShellsContainer.getServerShell(ShellsContainer.java:232) at org.python.pydev.editor.codecompletion.shell.ShellsContainer.getServerShell(ShellsContainer.java:165) at org.python.pydev.editor.codecompletion.shell.AbstractShell.getServerShell(AbstractShell.java:222) at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.createTokensFromServer(CompiledModule.java:372) at org.python.pydev.editor.codecompletion.revisited.modules.CompiledModule.<init>(CompiledModule.java:176) at org.python.pydev.editor.codecompletion.revisited.SystemModulesManager.getBuiltinModule(SystemModulesManager.java:332)
at org.python.pydev.editor.codecompletion.revisited.SystemModulesManager.getModule(SystemModulesManager.java:371)
at com.python.pydev.analysis.additionalinfo.AbstractAdditionalDependencyInfo.updateKeysIfNeededAndSave(AbstractAdditionalDependencyInfo.java:256)
at com.python.pydev.analysis.system_info_builder.InterpreterInfoBuilder.syncInfoToPythonPath(InterpreterInfoBuilder.java:160)
at com.python.pydev.analysis.system_info_builder.InterpreterInfoBuilder.syncInfoToPythonPath(InterpreterInfoBuilder.java:86)
at org.python.pydev.editor.codecompletion.revisited.SynchSystemModulesManager.synchronizeManagerToNameToInfoPythonpath(SynchSystemModulesManager.java:390)
at org.python.pydev.editor.codecompletion.revisited.SyncSystemModulesManagerScheduler$SynchJob.run(SyncSystemModulesManagerScheduler.java:261)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
答案 0 :(得分:0)
检查上面的常见问题:http://www.pydev.org/faq.html#HowToFixCodeCompletion
作为一个注释,问题是PyDev无法连接到shell以获取代码完成信息。通常的罪魁祸首是一些防火墙阻塞或错误配置的本地主机 - 如果使用ipv6,您可能希望尝试在127.0.0.1
中的get_localhost()
方法或plugins\org.python.pydev\pysrc\_pydev_bundle\pydev_localhost.py
中返回::1
(如果它为您修复它或者如果您找到不同的解决方案,请告诉我 - 我不时会看到一些不同的问题,我想保持faq更新有关尚未解释的内容或更新代码以解决不同的问题问题)。
答案 1 :(得分:0)
您应该检查防火墙设置中是否允许本地套接字连接。您甚至可能尝试关闭防火墙以测试是否仍然发生冻结。如果不是(或者如果你在使用inet连接的机器上),你可以允许这样的本地套接字连接(和/或等效的ipv6):
iptables -I INPUT 1 -p all -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
请注意,如果不确定,请与管理员联系,以便进行所有localhost通信尝试。如果这解决了您的问题并且没有出现其他安全问题,请保留更改(依赖于操作系统 - 在Windows / OS-X系统上,您要使用适当的管理GUI)
/etc/init.d/iptables save