PyDev 的代码补全中的 "maximum attempts to connect to shell" 是什么?

What is the "maximum attempts to connect to shell" in PyDev's code completion?

PyDev 代码补全中的 "maximum attempts to connect to shell" 是什么?

我在 Windows 7 SP1 x64 Ultimate 上使用 Eclipse 4.5 和 PyDev 4.3.0.201508182223。

PyDev 启动了一个 Python 实例来帮助生成代码完成建议。首选项控制 PyDev 在放弃之前等待子 Python 进程返回连接的时间。

PyDev(在 Java 中)启动 Python。在 Java 端创建了一个套接字服务器,子 Python 进程有一个命令行参数来指示要连接回的端口。 PyDev 然后等待 Python 进程连接到服务器。首选项控制该套接字必须建立连接的时间。通常它会少于 1 秒。

如果您检查 eclipse 进程树,您会看到一个 eclipse 的子进程(或 java,具体取决于您的 JVM 的设置方式),如果一切正常,它看起来有点像这样。正在与之通信的是这个进程。

<path to>\python.exe -u <path to>\org.python.pydev_<version>\pysrc\pycompletionserver.py <port number>

如果您想深入了解,在 Line 303 of AbstractShell.java 上,变量 maxAttempts 被设置为首选项值。如果您遵循该逻辑,您将看到 PyDev 是否​​无法按预期通过套接字建立通信,它将破坏已启动的 Python 进程。