pycharm 未使用 python3.8 连接到控制台

pycharm does not connect to console with python3.8

我不知道为什么;但由于 python 3.8 已发布;我无法 运行 pycharm 控制台,它始终处于 "being connected" 状态。

我使用 python 3.7 没有问题;因为控制台会立即打开。

在这里你可以看到我已经尝试了几次 运行 控制台但是我知道,即使我等一天;它不连接到控制台;但是当我将解释器从 python3.8 更改为 python3.7 时,我打开的新控制台在一秒钟内就全部设置好了。

错误:

C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\_pydevd_bundle\pydevd_resolver.py:138: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  if found.get(name) is not 1:
Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\pydevconsole.py", line 33, in <module>
    from _pydev_bundle.pydev_console_utils import BaseInterpreterInterface
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\_pydev_bundle\pydev_console_utils.py", line 11, in <module>
    from _pydevd_bundle import pydevd_thrift
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\_pydevd_bundle\pydevd_thrift.py", line 17, in <module>
    from pydev_console.protocol import DebugValue, GetArrayResponse, ArrayData, ArrayHeaders, ColHeader, RowHeader, \
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pydev\pydev_console\protocol.py", line 6, in <module>
    _console_thrift = _shaded_thriftpy.load(os.path.join(os.path.dirname(os.path.realpath(__file__)), "console.thrift"),
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_thriftpy\parser\__init__.py", line 29, in load
    thrift = parse(path, module_name, include_dirs=include_dirs,
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_thriftpy\parser\parser.py", line 502, in parse
    parser.parse(data)
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_ply\yacc.py", line 331, in parse
    return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc)
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_ply\yacc.py", line 1106, in parseopt_notrack
    p.callable(pslice)
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_thriftpy\parser\parser.py", line 212, in p_struct
    val = _fill_in_struct(p[1], p[3])
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_thriftpy\parser\parser.py", line 765, in _fill_in_struct
    gen_init(cls, thrift_spec, default_spec)
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_thriftpy\thrift.py", line 103, in gen_init
    cls.__init__ = init_func_generator(default_spec)
  File "C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\third_party\thriftpy\_shaded_thriftpy\_compat.py", line 102, in init_func_generator
    new_code = types.CodeType(len(varnames),
TypeError: an integer is required (got type bytes)

照片:

pycharm规格:pycharm专业版2019.1.3

它在 PyCharm(社区)2019.3.

上运行良好

PyCharm 发布 [PyPI]: thriftpy(对于当前版本,它是 modified v0 .3.8),因为不同的功能需要它(包括 Python 控制台)。

Python 3.8 进行了一系列更改(一个例子是 [Python]: PEP 570 -- Python Positional-Only Parameters),需要更改许多现有的 (3rd-party) 包以便它们工作(对于其中一些,仍然有 WiP)。

显然,ThriftPy 是需要更改的软件包之一。然而,自 2016 年以来就没有维护过,因此 JetBrains 在他们的存储库中保留(副本/复刻?)。

无论如何,您遇到的问题已由 [GitHub]: JetBrains/intellij-community - PY-36069 Python console support for Python 3.8.
Unfortunately, I couldn't find the issue on JetBrains.YouTrack 解决,因此我没有任何关于它的其他信息(例如何时解决等)。

我可以告诉你的(也在开头提到),它已在 PyCharm(社区)2019.3[=47= 中修复(有效) ],所以如果你升级它,你应该不会再有这个问题了。

解决方法(如果升级不是一个选项)是将补丁(在提交 URL 中)应用到您的(本地)_compat.py 文件。检查 修补 utrunner 部分)了解如何应用补丁(在 Win 上) .
小提一下:将反向补丁应用到我的本地文件,使问题可见。