Ubuntu服务器执行npm install --force报Python print错误如何解决
报错根因
该报错由node-gyp版本与系统Python环境不匹配导致:
- 当前环境的
node-gyp版本为v3.8.0,属于老旧版本,默认查找Python2解释器执行构建脚本,脚本中使用了Python2专属的无括号print语法 - Ubuntu 22.04官方源已不再默认提供Python2支持,当前系统中
/usr/bin/python2路径实际指向Python 3.10解释器,执行Python2语法代码时直接触发语法错误,导致构建失败
解决步骤
优先选择适配Python3的方案,无需安装已停止维护的Python2:
- 全局升级node-gyp到支持Python3的稳定版本
sudo npm install -g node-gyp@latest
- 配置npm默认使用系统Python3作为node-gyp的解释器
npm config set python /usr/bin/python3
- 清理之前安装失败产生的缓存文件,重新执行安装命令
rm -rf node_modules package-lock.json npm install --force
如果执行上述步骤后仍有构建报错,先补装Ubuntu环境下原生模块编译需要的系统依赖,再重试安装:
sudo apt update sudo apt install -y build-essential python3-dev
备选方案(不推荐)
如果项目依赖锁死了老旧版本node-gyp、无法升级适配Python3,可以手动安装Python2匹配旧构建逻辑:
sudo apt update sudo apt install -y python2
安装完成后重新执行npm install --force即可。注意Python2已停止官方维护多年,存在大量未修复的安全风险,该方案仅用于兼容实在无法升级的遗留项目,非必要不要选用。
内容的提问来源于stack exchange,提问作者Moshe Cohen
相关产品推荐
相关产品推荐

