web-dev-qa-db-fra.com

Erreur NPM "Impossible de trouver Python exécutable" dans Macos Big Sur

Je cherchais la réponse à cela pour une bonne semaine solide maintenant, sans succès. J'ai examiné chaque article sur Stackoverflow, chaque article de Google et chaque question de GitHubing connexe que je pouvais trouver. Les erreurs les plus connexes semblent être plus âgées, alors je me demande si ma question est légèrement différente en raison de moi sur Macos Big Sur.

le problème : quand j'essaie de courir yarn install Dans mon repo local, je reçois une erreur liée à Node-Gyp et a python exécutable incapable à être trouvé. Voici ce que mon terminal montre:

yarn install v1.22.17

...other stuff

[4/4] ????  Building fresh packages...
[6/13] ⠐ node-sass
[2/13] ⠐ node-sass
[10/13] ⠐ metrohash
[4/13] ⠐ fsevents
error /Users/jimmiejackson/Documents/repositories/repo-name/node_modules/metrohash: Command failed.
Exit code: 1
Command: node-gyp rebuild
Arguments:
Directory: /Users/jimmiejackson/Documents/repositories/repo-name/node_modules/metrohash
Output:
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | darwin | x64
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "/usr/local/opt/[email protected]/bin/python3", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (/Users/jimmiejackson/Documents/repositories/repo-name/node_modules/node-gyp/lib/configure.js:484:19)
gyp ERR! stack     at PythonFinder.<anonymous> (/Users/jimmiejackson/Documents/repositories/repo-name/node_modules/node-gyp/lib/configure.js:406:16)
gyp ERR! stack     at F (/Users/jimmiejackson/Documents/repositories/repo-name/node_modules/which/which.js:68:16)
gyp ERR! stack     at E (/Users/jimmiejackson/Documents/repositories/repo-name/node_modules/which/which.js:80:29)
gyp ERR! stack     at /Users/jimmiejackson/Documents/repositories/repo-name/node_modules/which/which.js:89:16
gyp ERR! stack     at /Users/jimmiejackson/Documents/repositories/repo-name/node_modules/isexe/index.js:42:5
gyp ERR! stack     at /Users/jimmiejackson/Documents/repositories/repo-name/node_modules/isexe/mode.js:8:5
gyp ERR! stack     at FSReqCallback.oncomplete (fs.js:167:21)
gyp ERR! System Darwin 20.6.0
gyp ERR! command "/Users/jimmiejackson/.nvm/versions/node/v12.18.0/bin/node" "/Users/jimmiejackson/Documents/repositories/repo-name/node_modules/metrohash/node_modules/.bin/node-gyp" "rebuild"
gyp ERR! cwd /Users/jimmiejackson/Documents/repositories/repo-name/node_modules/metrohash

Je ne suis pas tout à fait sûr de ce que signifie cette erreur ou pourquoi ce module de noeud recherche Python3. J'ai essayé de courir npm set config /path/to/python, télécharger python3, réglage du PYTHON chemin dans mon profil .zshrc, mais rien ne semble fonctionner. C'est tout à fait possible que mon manque de compréhension de la question signifie que je suis sur le droit de droite mais n'a pas tout Obtenez quelque chose de bien. Des idées?

6
J. Jackson

Je crois que vous pouvez définir explicitement env VaR en le préfixant avec npm_config:

$ export npm_config_python=/path/to/python

vérifiez si cela est configuré en répertoriant la configuration:

$ npm config list
...

; environment configs
python = "/path/to/python"

cela devrait être ramassé par node-gyp.

Une autre approche serait de le définir en .npmrc

python = "/path/to/python"

Une troisième approche serait de la définir globalement:

npm config --global set python /path/to/python
0
Pedreiro