vscode-python: python.languageServer Jedi no longer works on recent ms-python.python

Hello, I have an issue with Pylance (it makes VMs OOM ; Opened ticket : https://github.com/microsoft/pylance-release/issues/4121) so I am contraint to use Jedi. But the python.languageServer Jedi no longer works on recent ms-python.python extensions.

Issue on ms-python.python v2023.8.0, v2023.9.11361009, v2022.18.2, v2022.2.1924087327, v2022.0.1786462952 :

{'traceback': ['  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.8.0\\pythonFiles\\lib\\jedilsp\\pygls\\protocol.py", line 337, in _handle_request\n    self._execute_request(msg_id, handler, params)\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.8.0\\pythonFiles\\lib\\jedilsp\\pygls\\protocol.py", line 261, in _execute_request\n    self._send_response(msg_id, handler(params))\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.8.0\\pythonFiles\\lib\\jedilsp\\jedi_language_server\\server.py", line 305, in definition\n    jedi_script = jedi_utils.script(server.project, document)\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.8.0\\pythonFiles\\lib\\jedilsp\\jedi_language_server\\jedi_utils.py", line 108, in script\n    return Script(code=document.source, path=document.path, project=project)\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.8.0\\pythonFiles\\lib\\jedilsp\\jedi\\api\\__init__.py", line 119, in __init__\n    self._inference_state = InferenceState(\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.8.0\\pythonFiles\\lib\\jedilsp\\jedi\\inference\\__init__.py", line 90, in __init__\n    self.compiled_subprocess = environment.get_inference_state_subprocess(self)\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.8.0\\pythonFiles\\lib\\jedilsp\\jedi\\api\\environment.py", line 106, in get_inference_state_subprocess\n    return InferenceStateSubprocess(inference_state, self._get_subprocess())\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.8.0\\pythonFiles\\lib\\jedilsp\\jedi\\api\\environment.py", line 79, in _get_subprocess\n    raise InvalidPythonEnvironment(\n'
    ]
}

vscode jedi.api.environment.InvalidPythonEnvironment: Could not get version information for InternalError("The subprocess python.exe has crashed (EOFError('Ran out of inputInternalError("The subprocess C:\\Program Files (x86)\\wapt\\Scripts\\python.exe has crashed (EOFError('Ran out of input

I tried to install this but the issue remains.

waptpython -m pip install opencv-contrib-python
waptpython -m pip install opencv-python

No issues on ms-python.python v2021.12.1559732655, v2021.11.1422169775 and obviously all 2021 versions :

INFO:pygls.protocol:Sending data: {"jsonrpc": "2.0", "id": 89, "result": {"label": "Windows10", "kind": 6, "detail": "Windows10 = Version(\"10.0\", 2)", "documentation": {"kind": "markdown", "value": ""}, "sortText": "v01", "filterText": "Windows10", "insertText": "Windows10", "insertTextFormat": 1}}
INFO:pygls.protocol:Sending data: {"jsonrpc": "2.0", "id": 90, "result": null}
INFO:pygls.protocol:Sending data: {"jsonrpc": "2.0", "id": 91, "result": [{"name": "app_name", "kind": 13, "range": {"start": {"line": 3, "character": 0}, "end": {"line": 3, "character": 31}}, "selectionRange": {"start": {"line": 3, "character": 0}, "end": {"line": 3, "character": 8}}, "detail": "app_name = \".NET Framework 3.5\"", "children": []}, {"name": "install", "kind": 12, "range": {"start": {"line": 6, "character": 0}, "end": {"line": 68, "character": 65}}, "selectionRange": {"start": {"line": 6, "character": 4}, "end": {"line": 6, "character": 11}}, "detail": "def install", "children": []}, {"name": "uninstall", "kind": 12, "range": {"start": {"line": 71, "character": 0}, "end": {"line": 83, "character": 50}}, "selectionRange": {"start": {"line": 71, "character": 4}, "end": {"line": 71, "character": 13}}, "detail": "def uninstall", "children": []}, {"name": "audit", "kind": 12, "range": {"start": {"line": 86, "character": 0}, "end": {"line": 101, "character": 19}}, "selectionRange": {"start": {"line": 86, "character": 4}, "end": {"line": 86, "character": 9}}, "detail": "def audit", "children": []}]}
INFO:pygls.protocol:Sending data: {"jsonrpc": "2.0", "id": 92, "result": null}

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 1
  • Comments: 20 (7 by maintainers)

Most upvoted comments

@karthiknadig I don’t “want” to use Jedi but I am forced to since we got a major issue on Pylance (https://github.com/microsoft/pylance-release/issues/4121)

Its fine for me to do this on every update but sadly it didn’t seems to work.

pip install is successful after editing the command:

PS C:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0> &waptpython -m pip install -t ./pythonFiles/lib/jedilsp -U jedi-language-server
Collecting jedi-language-server
  Using cached jedi_language_server-0.40.0-py3-none-any.whl (31 kB)
Collecting docstring-to-markdown<1.0.0
  Using cached docstring_to_markdown-0.12-py3-none-any.whl (18 kB)
Collecting lsprotocol>=2022.0.0a9
  Using cached lsprotocol-2023.0.0a2-py3-none-any.whl (69 kB)
Collecting pygls<2.0.0,>=1.0.0
  Using cached pygls-1.0.2-py3-none-any.whl (38 kB)
Collecting pydantic<2.0.0,>=1.9.1
  Using cached pydantic-1.10.11-py3-none-any.whl (158 kB)
Collecting jedi<0.19.0,>=0.18.1
  Using cached jedi-0.18.2-py2.py3-none-any.whl (1.6 MB)
Collecting parso<0.9.0,>=0.8.0
  Using cached parso-0.8.3-py2.py3-none-any.whl (100 kB)
Collecting attrs>=21.3.0
  Using cached attrs-23.1.0-py3-none-any.whl (61 kB)
Collecting cattrs
  Using cached cattrs-23.1.2-py3-none-any.whl (50 kB)
Collecting typing-extensions>=4.2.0
  Using cached typing_extensions-4.7.1-py3-none-any.whl (33 kB)
Collecting typeguard<4,>=3
  Using cached typeguard-3.0.2-py3-none-any.whl (30 kB)
Collecting importlib-metadata>=3.6
  Using cached importlib_metadata-6.8.0-py3-none-any.whl (22 kB)
Collecting exceptiongroup
  Using cached exceptiongroup-1.1.2-py3-none-any.whl (14 kB)
Collecting zipp>=0.5
  Using cached zipp-3.16.2-py3-none-any.whl (7.2 kB)
Installing collected packages: zipp, typing-extensions, exceptiongroup, attrs, importlib-metadata, cattrs, typeguard, parso, lsprotocol, pygls, pydantic, jedi, docstring-to-markdown, jedi-language-server
Successfully installed attrs-23.1.0 cattrs-23.1.2 docstring-to-markdown-0.12 exceptiongroup-1.1.2 importlib-metadata-6.8.0 jedi-0.18.2 jedi-language-server-0.40.0 lsprotocol-2023.0.0a2 parso-0.8.3 pydantic-1.10.11 pygls-1.0.2 typeguard-3.0.2 typing-extensions-4.7.1 zipp-3.16.2
WARNING: You are using pip version 21.3.1; however, version 23.2 is available.
You should consider upgrading via the 'C:\Program Files (x86)\wapt\waptpython.exe -m pip install --upgrade pip' command.

But it looks like the error is still the same:

2023-07-17 17:02:21.890 [info] ERROR:pygls.protocol:Failed to handle request 2 textDocument/codeAction CodeActionParams(text_document=TextDocumentIdentifier(uri='file:///c%3A/waptdev/wapt-packages/vscode-python/all/setup.py'), range=0:0-173:0, context=CodeActionContext(diagnostics=[], only=None, trigger_kind=<CodeActionTriggerKind.Automatic: 2>), work_done_token=None, partial_result_token=None)
Traceback (most recent call last):
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\jedi\inference\compiled\subprocess\__init__.py", line 249, in _send
    is_exception, traceback, result = pickle_load(self._get_process().stdout)
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\jedi\_compatibility.py", line 12, in pickle_load
    return pickle.load(file)
EOFError: Ran out of input

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\jedi\api\environment.py", line 77, in _get_subprocess
    info = self._subprocess._send(None, _get_info)
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\jedi\inference\compiled\subprocess\__init__.py", line 257, in _send
    raise InternalError(
jedi.api.exceptions.InternalError: The subprocess C:\Program Files (x86)\wapt\Scripts\python.exe has crashed (EOFError('Ran out of input'), stderr=).

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\pygls\protocol.py", line 340, in _handle_request
    self._execute_request(msg_id, handler, params)
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\pygls\protocol.py", line 264, in _execute_request
    self._send_response(msg_id, handler(params))
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\jedi_language_server\server.py", line 547, in code_action
    jedi_script = jedi_utils.script(server.project, document)
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\jedi_language_server\jedi_utils.py", line 108, in script
    return Script(code=document.source, path=document.path, project=project)
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\jedi\api\__init__.py", line 119, in __init__
    self._inference_state = InferenceState(
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\jedi\inference\__init__.py", line 90, in __init__
    self.compiled_subprocess = environment.get_inference_state_subprocess(self)
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\jedi\api\environment.py", line 106, in get_inference_state_subprocess
    return InferenceStateSubprocess(inference_state, self._get_subprocess())
  File "c:\Users\jpadmin\.vscode\extensions\ms-python.python-2023.12.0\pythonFiles\lib\jedilsp\jedi\api\environment.py", line 79, in _get_subprocess
    raise InvalidPythonEnvironment(
jedi.api.environment.InvalidPythonEnvironment: Could not get version information for 'C:\\Program Files (x86)\\wapt\\Scripts\\python.exe': InternalError("The subprocess C:\\Program Files (x86)\\wapt\\Scripts\\python.exe has crashed (EOFError('Ran out of input'), stderr=).")

2023-07-17 17:02:21.892 [info] [Error - 5:02:21 PM] Request textDocument/codeAction failed.
2023-07-17 17:02:21.892 [info]   Message: jedi.api.environment.InvalidPythonEnvironment: Could not get version information for 'C:\\Program Files (x86)\\wapt\\Scripts\\python.exe': InternalError("The subprocess C:\\Program Files (x86)\\wapt\\Scripts\\python.exe has crashed (EOFError('Ran out of input'), stderr=).")
  Code: -32602 
{'traceback': ['  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.12.0\\pythonFiles\\lib\\jedilsp\\pygls\\protocol.py", line 340, in _handle_request\n    self._execute_request(msg_id, handler, params)\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.12.0\\pythonFiles\\lib\\jedilsp\\pygls\\protocol.py", line 264, in _execute_request\n    self._send_response(msg_id, handler(params))\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.12.0\\pythonFiles\\lib\\jedilsp\\jedi_language_server\\server.py", line 547, in code_action\n    jedi_script = jedi_utils.script(server.project, document)\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.12.0\\pythonFiles\\lib\\jedilsp\\jedi_language_server\\jedi_utils.py", line 108, in script\n    return Script(code=document.source, path=document.path, project=project)\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.12.0\\pythonFiles\\lib\\jedilsp\\jedi\\api\\__init__.py", line 119, in __init__\n    self._inference_state = InferenceState(\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.12.0\\pythonFiles\\lib\\jedilsp\\jedi\\inference\\__init__.py", line 90, in __init__\n    self.compiled_subprocess = environment.get_inference_state_subprocess(self)\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.12.0\\pythonFiles\\lib\\jedilsp\\jedi\\api\\environment.py", line 106, in get_inference_state_subprocess\n    return InferenceStateSubprocess(inference_state, self._get_subprocess())\n', '  File "c:\\Users\\jpadmin\\.vscode\\extensions\\ms-python.python-2023.12.0\\pythonFiles\\lib\\jedilsp\\jedi\\api\\environment.py", line 79, in _get_subprocess\n    raise InvalidPythonEnvironment(\n']}