posit-dev / positron

Positron, a next-generation data science IDE
https://positron.posit.co
Other
2.82k stars 91 forks source link

Positron web: Python Interpreter Not Found #5286

Open testlabauto opened 2 weeks ago

testlabauto commented 2 weeks ago

System details:

Positron and OS details:

Various versions, only seeing in web

Interpreter details:

Python 3.10.12

Describe the issue:

Error in logs when running various smoke tests

2024-10-31 17:57:34.766 [error] Creating session for language runtime c1579bebfca42fa8b57b884404993cb3 (language: Python name: Python 3.10.12 (Global) version: 3.10.12) failed. Reason: Error: Interpreter not found: /bin/python

2024-10-31 17:57:34.768 [error] Interpreter not found: /bin/python: Error: Interpreter not found: /bin/python at new PythonRuntimeSession (/home/runner/work/positron/positron/extensions/positron-python/out/client/positron/session.js:70:19) at PythonRuntimeManager.createSession (/home/runner/work/positron/positron/extensions/positron-python/out/client/positron/manager.js:144:16) at async ExtHostLanguageRuntime.$createLanguageRuntimeSession (/home/runner/work/positron/positron/out/vs/workbench/api/common/positron/extHostLanguageRuntime.js:82:33)

sparklinesTrend.test.js.zip

Steps to reproduce the issue:

This happens periodically with Python smoke tests

Expected or desired behavior:

Valid interpreters are found

Were there any error messages in the UI, Output panel, or Developer Tools console?

ERR Creating session for language runtime c1579bebfca42fa8b57b884404993cb3 (language: Python name: Python 3.10.12 (Global) version: 3.10.12) failed. Reason: Error: Interpreter not found: /bin/python

jmcphers commented 1 week ago

Triage: This error is being logged from https://github.com/posit-dev/positron/blob/d753d0dce92a116a0c6fe6e70cf7822b8e4243a2/extensions/positron-python/src/client/positron/session.ts#L108-L112. Maybe an issue w/ string equality or something changing the identifier we're comparing?

Let's add some logging here on the RHS/LHS of this check so we can figure out what's happening the next time we reproduce this.