Skip to content

Commit b15f9da

Browse files
committed
Cherry-pick miniconda fix into rc
1 parent 52dcd3f commit b15f9da

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/client/interpreter/locators/services/condaService.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,21 @@ export class CondaService implements ICondaService {
222222
try {
223223
const condaFile = await this.getCondaFile();
224224
const processService = await this.processServiceFactory.create();
225-
const envInfo = await processService.exec(condaFile, ['env', 'list']).then(output => output.stdout);
225+
let envInfo = await processService.exec(condaFile, ['env', 'list']).then(output => output.stdout);
226226
traceVerbose(`Conda Env List ${envInfo}}`);
227+
if (!envInfo) {
228+
traceVerbose('Conda env list failure, attempting path additions.');
229+
// Try adding different folders to the path. Miniconda fails to run
230+
// without them.
231+
const baseFolder = path.dirname(path.dirname(condaFile));
232+
const binFolder = path.join(baseFolder, 'bin');
233+
const condaBinFolder = path.join(baseFolder, 'condabin');
234+
const libaryBinFolder = path.join(baseFolder, 'library', 'bin');
235+
const newEnv = process.env;
236+
newEnv.PATH = `${binFolder};${condaBinFolder};${libaryBinFolder};${newEnv.PATH}`;
237+
traceVerbose(`Attempting new path for conda env list: ${newEnv.PATH}`);
238+
envInfo = await processService.exec(condaFile, ['env', 'list'], { env: newEnv }).then(output => output.stdout);
239+
}
227240
const environments = this.condaHelper.parseCondaEnvironmentNames(envInfo);
228241
await globalPersistence.updateValue({ data: environments });
229242
return environments;

0 commit comments

Comments
 (0)