diff --git a/src/client/envExt/api.internal.ts b/src/client/envExt/api.internal.ts index c4247f63a3c5..d049ad22602c 100644 --- a/src/client/envExt/api.internal.ts +++ b/src/client/envExt/api.internal.ts @@ -89,9 +89,15 @@ export async function runInTerminal( args?: string[], cwd?: string | Uri, show?: boolean, + interpreterPath?: string, ): Promise { const envExtApi = await getEnvExtApi(); - const env = await getEnvironment(resource); + let env; + if (interpreterPath) { + env = await envExtApi.resolveEnvironment(Uri.file(interpreterPath)); + } else { + env = await getEnvironment(resource); + } const project = resource ? envExtApi.getPythonProject(resource) : undefined; if (env && resource) { return envExtApi.runInTerminal(env, { @@ -108,9 +114,15 @@ export async function runInDedicatedTerminal( args?: string[], cwd?: string | Uri, show?: boolean, + interpreterPath?: string, ): Promise { const envExtApi = await getEnvExtApi(); - const env = await getEnvironment(resource); + let env; + if (interpreterPath) { + env = await envExtApi.resolveEnvironment(Uri.file(interpreterPath)); + } else { + env = await getEnvironment(resource); + } const project = resource ? envExtApi.getPythonProject(resource) : undefined; if (env) { return envExtApi.runInDedicatedTerminal(resource ?? 'global', env, { diff --git a/src/client/terminals/codeExecution/codeExecutionManager.ts b/src/client/terminals/codeExecution/codeExecutionManager.ts index 740256ca78b3..51850cfc3bea 100644 --- a/src/client/terminals/codeExecution/codeExecutionManager.ts +++ b/src/client/terminals/codeExecution/codeExecutionManager.ts @@ -130,6 +130,12 @@ export class CodeExecutionManager implements ICodeExecutionManager { if (!fileToExecute) { return; } + + const pythonSettings = this.configSettings.getSettings(file); + + // Check on setting python.defaultInterpreterPath + const defaultInterpreterPath = pythonSettings.defaultInterpreterPath; + const fileAfterSave = await codeExecutionHelper.saveFileIfDirty(fileToExecute); if (fileAfterSave) { fileToExecute = fileAfterSave; @@ -143,6 +149,7 @@ export class CodeExecutionManager implements ICodeExecutionManager { [fileToExecute.fsPath.fileToCommandArgumentForPythonExt()], undefined, show, + defaultInterpreterPath, ); } else { terminal = await runInTerminal( @@ -150,6 +157,7 @@ export class CodeExecutionManager implements ICodeExecutionManager { [fileToExecute.fsPath.fileToCommandArgumentForPythonExt()], undefined, show, + defaultInterpreterPath, ); }