summaryrefslogtreecommitdiff
path: root/python/scriptingprovider.py
diff options
context:
space:
mode:
authorJordan Wiens <github@psifertex.com>2026-04-23 17:05:37 -0400
committerJordan Wiens <github@psifertex.com>2026-04-23 17:57:17 -0400
commit0223aa63efc83eef3f8f7b4d59cead4a6344f6e0 (patch)
tree175f582f01312fc58e0d168f9e2b95cb73357a9b /python/scriptingprovider.py
parentcfeb86db36ab9e3d85692bf47316f0ea07ba4d68 (diff)
output pip installation failures to the log, allow custom python stack traces in log window
Diffstat (limited to 'python/scriptingprovider.py')
-rw-r--r--python/scriptingprovider.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/python/scriptingprovider.py b/python/scriptingprovider.py
index a956f8e3..8a541422 100644
--- a/python/scriptingprovider.py
+++ b/python/scriptingprovider.py
@@ -1120,6 +1120,9 @@ class PythonScriptingProvider(ScriptingProvider):
try:
return (True, subprocess.check_output(args, startupinfo=si, stderr=subprocess.STDOUT, env=env).decode("utf-8"))
+ except subprocess.CalledProcessError as se:
+ output = se.output.decode("utf-8", errors="replace") if se.output else ""
+ return (False, f"{se}\n{output}" if output else str(se))
except subprocess.SubprocessError as se:
return (False, str(se))
@@ -1277,9 +1280,13 @@ class PythonScriptingProvider(ScriptingProvider):
logger.log_info(f"Running pip {args}")
status, result = self._run_args(args, env=python_env)
if status:
+ logger.log_debug(f"pip output: {result}")
importlib.invalidate_caches()
else:
- logger.log_error(f"Error while attempting to install requirements {result}")
+ logger.log_error_with_traceback(
+ "Failed to install requirements. Click (Details...) for pip output.",
+ stack_trace=result,
+ )
return status
def _module_installed(self, ctx, module: str) -> bool: