首页 > 解决方案 > PyCharm 2019.3 Python 控制台 - 连接超时

问题描述

我无法访问我的 Python 控制台来运行脚本。我刚刚在 Manjaro Linux 4.19 上通过 JetLab 的 tar 文件安装了 PyCharm 2019.3 Pro。我的驾照很好。我已将我的 Python 解释器设置在Setting>Project>Project Interpreter和下Settings>Build...>Console>Python Console。想不通是怎么回事...

这是 Python 控制台输出的内容:

/home/XXXXX/miniconda3/bin/python /home/XXXXX/bin/pycharm-2019.3/plugins/python/helpers/pydev/pydevconsole.py --mode=client --port=33145
Traceback (most recent call last):
  File "/home/XXXXX/bin/pycharm-2019.3/plugins/python/helpers/pydev/pydevconsole.py", line 482, in <module>
    pydevconsole.start_client(host, port)
  File "/home/XXXXX/bin/pycharm-2019.3/plugins/python/helpers/pydev/pydevconsole.py", line 395, in start_client
    client, server_transport = make_rpc_client(client_service, host, port)
  File "/home/XXXXX/bin/pycharm-2019.3/plugins/python/helpers/pydev/_pydev_comm/pydev_rpc.py", line 11, in make_rpc_client
    client_transport, server_transport = open_transports_as_client((host, port))
  File "/home/XXXXX/bin/pycharm-2019.3/plugins/python/helpers/pydev/_pydev_comm/pydev_transport.py", line 231, in open_transports_as_client
    client_socket.connect(addr)
TimeoutError: [Errno 110] Connection timed out
Process finished with exit code 1

有问题的代码可能与socket模块调用有关pydev_transport.py

def open_transports_as_client(addr):
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client_socket.connect(addr)   #Problem here? By the way addr=(host,port)

    return _create_client_server_transports(client_socket)

标签: pythonpython-3.xpycharm

解决方案


似乎 PyCharm 设置host=localhost似乎不起作用。

为了快速修复,我设置了host=127.0.0.1. 也就是我在里面编辑了主循环pydevconsole.py,修改了客户端循环:

    if mode == 'client':
        if not port:
            # port must be set for client
            sys.exit(-1)

        if not host:
            from _pydev_bundle import pydev_localhost
            host = client_host = "127.0.0.1" 
            # host = client_host = pydev_localhost.get_localhost()
        pydevconsole.start_client(host, port)
    elif mode == 'server':
        pydevconsole.start_server(port)

推荐阅读