pycharm stellt mit python3.8 keine Verbindung zur Konsole her

10

Ich weiß nicht warum; aber seit Python 3.8 veröffentlicht wurde; Ich kann die Pycharm-Konsole nicht ausführen und sie befindet sich immer im Status "Verbunden sein".

Ich hatte kein Problem mit Python 3.7; da die Konsole sofort geöffnet wird.

Hier können Sie sehen, dass ich mehrmals versucht habe, die Konsole auszuführen, aber ich weiß, auch wenn ich einen Tag warte; Es wird keine Verbindung zur Konsole hergestellt. Wenn ich jedoch den Interpreter von python3.8 auf python3.7 ändere, werden die neuen Konsolen, die ich öffne, alle innerhalb einer Sekunde eingerichtet.

Der Fehler:

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)

Das Foto:

Der Screenshot

pycharm specs: pycharm professional version 2019.1.3

Moh Vahedi
quelle
Haben Sie den Dolmetscher verwirrt? jetbrains.com/help/pycharm/configuring-python-interpreter.html Welche Python (wenn Sie beide installiert haben) befindet sich in Ihrem Pfad?
Swedgin
@Swedgin; Ja, die Konfiguration und der Pfad wurden dem Pycharm korrekt zugewiesen.
Moh Vahedi
@ Swedgin, hast du eine Vermutung, was der Fehler zu uns sagt?
Moh Vahedi
Entschuldigung, kann dir nicht helfen. Es ist schon lange her, dass ich Pycharm benutzt habe. Das waren die einzigen zwei Probleme, an die ich denken konnte.
Swedgin

Antworten:

7

Es funktioniert gut auf PyCharm (Community) 2019.3 .

PyCharm Schiffe [PyPI]: thriftpy (zur aktuellen Version, es ist ein modifizierte v0.3.8 ), wie sie es für verschiedene Funktionen (einschließlich der benötigten Python - Konsole ).

Python 3.8 kam mit einer Reihe von Änderungen (ein Beispiel ist [Python]: PEP 570 - Python Positional-Only - Parameter ) erfordern Veränderungen in vielen der bestehenden (3 rd -Party) Pakete , um für sie zu arbeiten (für einige ihnen gibt es noch WiP ).

Anscheinend ist ThriftPy eines dieser Pakete, die Änderungen erfordern. Es wurde jedoch seit 2016 nicht mehr gewartet, sodass JetBrains (eine Kopie / Gabel?) In ihrem Repository aufbewahrt.

Wie auch immer, das Problem, mit dem Sie konfrontiert sind, wurde von [GitHub] behoben : JetBrains / Intellij-Community - PY-36069 Python-Konsolenunterstützung für Python 3.8 .
Leider konnte ich das Problem auf JetBrains.YouTrack nicht finden , daher habe ich keine zusätzlichen Informationen dazu (z. B. wann es behoben wurde usw.).

Was ich Ihnen sagen kann (auch am Anfang erwähnt), ist, dass es in PyCharm (Community) 2019.3 behoben wurde (funktioniert). Wenn Sie es also aktualisieren, sollten Sie dieses Problem nicht mehr haben.

Eine Problemumgehung (wenn ein Upgrade nicht möglich ist) besteht darin, den Patch (in der Festschreibungs- URL ) auf Ihre (lokale) Datei _compat.py anzuwenden . Aktivieren Sie [SO]: Ausführen / Debuggen der UnitTests einer Django-Anwendung über das Kontextmenü mit der rechten Maustaste in der PyCharm Community Edition? (Antwort von @ CristiFati) ( Abschnitt " Patching utrunner ") zum Anwenden von Patches (unter Win ).
Kleine Erwähnung: Durch Anwenden des umgekehrten Patches auf meine lokale Datei wurde das Problem sichtbar.

CristiFati
quelle
Das ist super, Danke! Eigentlich dachte ich, dass Pycharm dies wahrscheinlich behoben hat, also habe ich Pycharm aktualisiert, bevor ich das Kopfgeld festlegte, und es hat das Problem nicht gelöst. Anscheinend war das Update von 1.3 auf 1.4, obwohl Version 3 bereits verfügbar war. Durch erneutes Aktualisieren wurde das Problem wie gesagt behoben.
Ella Sharakanski
@ EllaSharakanski: Ich bin froh zu hören, dass es funktioniert hat! :)
CristiFati
@ EllaSharakanski, danke für das Kopfgeld und auch danke @CristiFatifür die Antwort.
Moh Vahedi