-
在执行
npm i时报错ValueError: invalid mode: 'rU' while trying to load binding.gyp这个错误是因为
Python 3不支持rU模式。rU是Python 2的模式,表示以通用换行符读取文件。为了解决这个问题,可以通过升级node-gyp或降低python版本来解决。# 升级 node-gyp $ npm install -g node-gyp但是非特殊情况,更推荐降低
Python版本来解决,因为有的项目是老项目,它必须依赖低版本python来执行,这样出现的额外问题会比升级遇到的问题少。 -
node-gyp需要python2.5 < v < 3.0的版本,所以如果本机是python3以上的版本,可以拷贝弄两个版本。附 Python 使用 pyenv 多版本管理。 -
安装好对应的
python版本后,输出一下当前版本号,默认会使用当前设置的python版本,也可以指定版本。 -
处理好版本问题后,需要 清理和重建,删除
node_modules目录和package-lock.json文件,然后重新安装依赖:$ rm -rf node_modules package-lock.json $ npm install安装好项目依赖后,
python版本还是可以随意切换的,因为主要是在安装项目依赖的时候需要用到。 -
查看配置
$ npm config list -
指定版本
# 指定目录,如果不指定,默认使用当前系统环境的得全局 python 版本 $ npm config set python /Users/xxx/.pyenv/versions/2.7.18/bin/python -
删除配置
# 移除后就使用全局 python 版本 $ npm config delete python