You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
But, the following code using which module is failed.
var which = require('which');
var cmd = 'esptool.py';
try {
var ret = which.sync(cmd);
} catch (error) {
console.log('error', error);
}
console.log(ret);
$ node test.js
error { Error: not found: esptool.py
at getNotFoundError (C:\Users\Young\Desktop\test\node_modules\which\which.js:13:12)
at Function.whichSync [as sync] (C:\Users\Young\Desktop\test\node_modules\which\which.js:132:9)
at Object.<anonymous> (C:\Users\Young\Desktop\test\test.js:6:21)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:393:7) code: 'ENOENT' }
undefined
What's wrong ???
The text was updated successfully, but these errors were encountered:
My guess is that you don't have .py in your PATHEXT environment variable. Therefor, even though esptool.py might be in the PATH, and have a mode including +x, it isn't executable because Windows systems judge executability based on the path extension. Note that if you ran esptool.py in the cmd.exe terminal, it'll say that it doesn't recognize the command.
bash on windows does not judge executability this way, since it's a ported unix tool that follows unix conventions in most things.
Put .py in your PATHEXT environment variable, and it'll work.
Or you can pass a modified pathExt by doing which.sync('esptool.py', {pathExt: ';' + process.env.PATHEXT}). That works because PATHEXT is colon-delimited, and if there's an entry at the start of it that is '', then it'll allow any command that is fully specified.
I know this is all a bit bonkers if you're more familiar with the Unix way, but it's how Windows works, and the point of this lib is to work out if exec(command) will find a thing or not, and which one it'll find.
In Git Bash on Windows 10
c:/Python27/Scripts
is also added in PATH ENV.But, the following code using
which
module is failed.What's wrong ???
The text was updated successfully, but these errors were encountered: