Skip to content

Commit

Permalink
lib: find python checks order changed on windows
Browse files Browse the repository at this point in the history
These changes favor py launcher over other checks excluding command line
or npm configuration and environment variable checks.

Also, updated supported python versions list.

Fixes: nodejs#2871
  • Loading branch information
StefanStojanovic committed Jun 14, 2023
1 parent 33391db commit 53185e4
Showing 1 changed file with 16 additions and 10 deletions.
26 changes: 16 additions & 10 deletions lib/find-python.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const programFiles = process.env.ProgramW6432 || process.env.ProgramFiles || `${
const programFilesX86 = process.env['ProgramFiles(x86)'] || `${programFiles} (x86)`

const winDefaultLocationsArray = []
for (const majorMinor of ['39', '38', '37', '36']) {
for (const majorMinor of ['311', '310', '39', '38']) {
if (foundLocalAppData) {
winDefaultLocationsArray.push(
`${localAppData}\\Programs\\Python\\Python${majorMinor}\\python.exe`,
Expand Down Expand Up @@ -114,7 +114,20 @@ PythonFinder.prototype = {
},
check: this.checkCommand,
arg: this.env.PYTHON
},
}
]

if (this.win) {
checks.push({
before: () => {
this.addLog(
'checking if the py launcher can be used to find Python 3')
},
check: this.checkPyLauncher
})
}

checks.push(...[
{
before: () => { this.addLog('checking if "python3" can be used') },
check: this.checkCommand,
Expand All @@ -125,7 +138,7 @@ PythonFinder.prototype = {
check: this.checkCommand,
arg: 'python'
}
]
])

if (this.win) {
for (var i = 0; i < this.winDefaultLocations.length; ++i) {
Expand All @@ -139,13 +152,6 @@ PythonFinder.prototype = {
arg: location
})
}
checks.push({
before: () => {
this.addLog(
'checking if the py launcher can be used to find Python 3')
},
check: this.checkPyLauncher
})
}

return checks
Expand Down

0 comments on commit 53185e4

Please sign in to comment.