我已经使用Eclipse、Jython和Pydev很长时间了。在新版本发布时进行升级。直到最近Pydev代码完成开始将诸如dir或print之类的公共项标记为“未定义变量”之前,所有这些都运行得很好。但程序运行正常。
错误日志显示:
‘python客户端还没有连接回eclipse (将重试.)’
‘'Attempt: 5中有2次失败,再次尝试.(套接字连接仍然为空)’
和更多的尝试5/5
“错误连接到python进程(最有可能导致失败的原因是防火墙blocking...misconfigured网络)”
此外,试图创建一个活动的jython控制台CTRL+ALT+ENTER会出现以下错误:
“'Create交互式控制台”在初始化控制台时遇到了错误。连接到控制台时出现意外错误。未能从pydev控制台接收到合适的Hello响应。最后收到的消息:控制台在等待答案时已经退出:1。
我花了很多时间在这里和其他地方寻找答案,这些答案包括了一些值得检查的建议:
32/64位混合安装;防火墙问题;IPV4首选项;本地主机条目;路径问题和其他问题:到目前为止,我已经签出的所有内容都没有成功。
软件是Windows 10,Eclipse 4.21.0,Pydev 9.1.0.2021,Java JDK 11.0.13,Jython 2.7.2
我非常感谢在这个问题上有任何进一步的帮助。
非常感谢
发布于 2021-10-23 03:38:35
那么,您就会得到这条消息,因为PyDev确实生成了一个shell,并与它通信以收集代码完成结果,而交互控制台也是如此。
现在,在这两种情况下,您的用例中似乎都阻止了套接字通信(正如消息所述,通常的罪魁祸首是一些防火墙--或者可能是防病毒--或者某种网络配置错误)。
不幸的是,我很难诊断这一点,因为它几乎依赖于机器(我只能说我在这里检查了一些东西,Jython运行得很好,所以问题在于机器上的一些错误配置)。
实际上,我计划停止需要套接字通信(用于从shell获取完成)和使用stdin/stdout (https://www.brainwy.com/tracker/PyDev/1183),但这仍然没有完成。
当Jython为您运行时,您可以尝试创建一个简单的服务器来验证连接是否有效。
即:创建具有以下内容的echo_server.py
:
import socket
if __name__ == '__main__':
HOST = '127.0.0.1'
PORT = 65432
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print('Connected by', addr)
data = conn.recv(1024)
conn.sendall(data)
print('Echo server finished')
和一个client.py
,包括:
import socket
if __name__ == '__main__':
HOST = '127.0.0.1'
PORT = 65432
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
data = s.recv(1024)
print('Received %r' % (data,))
然后运行服务器部分,然后运行客户端部分,并检查它是否适合您。
https://stackoverflow.com/questions/69679888
复制相似问题