@@ -8,20 +8,35 @@ const win = process.platform === 'win32'
8
8
const logWithPrefix = require ( './util' ) . logWithPrefix
9
9
10
10
const systemDrive = process . env . SystemDrive || 'C:'
11
- const username = process . env . USERNAME || process . env . USER || require ( 'os' ) . userInfo ( ) . username
11
+ const username = process . env . USERNAME || process . env . USER || getOsUserInfo ( )
12
12
const localAppData = process . env . LOCALAPPDATA || `${ systemDrive } \\${ username } \\AppData\\Local`
13
+ const foundLocalAppData = process . env . LOCALAPPDATA || username
13
14
const programFiles = process . env . ProgramW6432 || process . env . ProgramFiles || `${ systemDrive } \\Program Files`
14
15
const programFilesX86 = process . env [ 'ProgramFiles(x86)' ] || `${ programFiles } (x86)`
15
16
16
17
const winDefaultLocationsArray = [ ]
17
18
for ( const majorMinor of [ '39' , '38' , '37' , '36' ] ) {
18
- winDefaultLocationsArray . push (
19
- `${ localAppData } \\Programs\\Python\\Python${ majorMinor } \\python.exe` ,
20
- `${ programFiles } \\Python${ majorMinor } \\python.exe` ,
21
- `${ localAppData } \\Programs\\Python\\Python${ majorMinor } -32\\python.exe` ,
22
- `${ programFiles } \\Python${ majorMinor } -32\\python.exe` ,
23
- `${ programFilesX86 } \\Python${ majorMinor } -32\\python.exe`
24
- )
19
+ if ( foundLocalAppData ) {
20
+ winDefaultLocationsArray . push (
21
+ `${ localAppData } \\Programs\\Python\\Python${ majorMinor } \\python.exe` ,
22
+ `${ programFiles } \\Python${ majorMinor } \\python.exe` ,
23
+ `${ localAppData } \\Programs\\Python\\Python${ majorMinor } -32\\python.exe` ,
24
+ `${ programFiles } \\Python${ majorMinor } -32\\python.exe` ,
25
+ `${ programFilesX86 } \\Python${ majorMinor } -32\\python.exe`
26
+ )
27
+ } else {
28
+ winDefaultLocationsArray . push (
29
+ `${ programFiles } \\Python${ majorMinor } \\python.exe` ,
30
+ `${ programFiles } \\Python${ majorMinor } -32\\python.exe` ,
31
+ `${ programFilesX86 } \\Python${ majorMinor } -32\\python.exe`
32
+ )
33
+ }
34
+ }
35
+
36
+ function getOsUserInfo ( ) {
37
+ try {
38
+ return require ( 'os' ) . userInfo ( ) . username
39
+ } catch { }
25
40
}
26
41
27
42
function PythonFinder ( configPython , callback ) {
0 commit comments