@@ -614,39 +614,50 @@ async function resolveDefaultInterpreter(
614614
615615 if ( defaultInterpreterPath ) {
616616 const defaultManager = getConfiguration ( 'python-envs' ) . get < string > ( 'defaultEnvManager' , 'undefined' ) ;
617+ traceInfo ( `resolveDefaultInterpreter setting exists; found defaultEnvManager: ${ defaultManager } ` ) ;
617618 if ( ! defaultManager || defaultManager === 'ms-python.python:venv' ) {
618- // if user has defaultInterpreterPath and no defaultEnvManager set then resolve the defaultInterpreterPath setting
619- const resolved : NativeEnvInfo = await nativeFinder . resolve ( defaultInterpreterPath ) ;
620- if ( resolved && resolved . executable ) {
621- const resolvedEnv = await api . resolveEnvironment ( Uri . file ( resolved . executable ) ) ;
622-
623- let findEnvManager = envManagers . managers . find ( ( m ) => m . id === resolvedEnv ?. envId . managerId ) ;
624-
625- if ( ! findEnvManager ) {
626- findEnvManager = envManagers . managers . find ( ( m ) => m . id === 'ms-python.python:system' ) ;
627- }
628- if ( resolvedEnv ) {
629- const newEnv : PythonEnvironment = {
630- envId : {
631- id : resolvedEnv ?. envId . id ,
632- managerId : resolvedEnv ?. envId . managerId ?? '' ,
633- } ,
634- name : 'defaultInterpreterPath: ' + ( resolved . version ?? '' ) ,
635- displayName : 'defaultInterpreterPath: ' + ( resolved . version ?? '' ) ,
636- version : resolved . version ?? '' ,
637- displayPath : defaultInterpreterPath ?? '' ,
638- environmentPath : defaultInterpreterPath ? Uri . file ( defaultInterpreterPath ) : Uri . file ( '' ) ,
639- sysPrefix : resolved . arch ?? '' ,
640- execInfo : {
641- run : {
642- executable : defaultInterpreterPath ?? '' ,
619+ try {
620+ const resolved : NativeEnvInfo = await nativeFinder . resolve ( defaultInterpreterPath ) ;
621+ if ( resolved && resolved . executable ) {
622+ const resolvedEnv = await api . resolveEnvironment ( Uri . file ( resolved . executable ) ) ;
623+ traceInfo ( `[resolveDefaultInterpreter] API resolved environment: ${ JSON . stringify ( resolvedEnv ) } ` ) ;
624+
625+ let findEnvManager = envManagers . managers . find ( ( m ) => m . id === resolvedEnv ?. envId . managerId ) ;
626+ if ( ! findEnvManager ) {
627+ findEnvManager = envManagers . managers . find ( ( m ) => m . id === 'ms-python.python:system' ) ;
628+ }
629+ if ( resolvedEnv ) {
630+ const newEnv : PythonEnvironment = {
631+ envId : {
632+ id : resolvedEnv ?. envId . id ,
633+ managerId : resolvedEnv ?. envId . managerId ?? '' ,
643634 } ,
644- } ,
645- } ;
646- if ( workspace . workspaceFolders ?. [ 0 ] && findEnvManager ) {
647- await api . setEnvironment ( workspace . workspaceFolders [ 0 ] . uri , newEnv ) ;
635+ name : 'defaultInterpreterPath: ' + ( resolved . version ?? '' ) ,
636+ displayName : 'defaultInterpreterPath: ' + ( resolved . version ?? '' ) ,
637+ version : resolved . version ?? '' ,
638+ displayPath : defaultInterpreterPath ?? '' ,
639+ environmentPath : defaultInterpreterPath ? Uri . file ( defaultInterpreterPath ) : Uri . file ( '' ) ,
640+ sysPrefix : resolved . arch ?? '' ,
641+ execInfo : {
642+ run : {
643+ executable : defaultInterpreterPath ?? '' ,
644+ } ,
645+ } ,
646+ } ;
647+ if ( workspace . workspaceFolders ?. [ 0 ] && findEnvManager ) {
648+ traceInfo (
649+ `[resolveDefaultInterpreter] Setting environment for workspace: ${ workspace . workspaceFolders [ 0 ] . uri . fsPath } ` ,
650+ ) ;
651+ await api . setEnvironment ( workspace . workspaceFolders [ 0 ] . uri , newEnv ) ;
652+ }
648653 }
654+ } else {
655+ traceWarn (
656+ `[resolveDefaultInterpreter] NativeFinder did not resolve an executable for path: ${ defaultInterpreterPath } ` ,
657+ ) ;
649658 }
659+ } catch ( err ) {
660+ traceError ( `[resolveDefaultInterpreter] Error resolving default interpreter: ${ err } ` ) ;
650661 }
651662 }
652663 }
0 commit comments