树莓派1B执行npm install serialport报错:Python语法错误
树莓派1B安装serialport时Python版本不兼容问题解决
问题背景
在树莓派1B环境执行npm install serialport时触发Python语法错误:系统默认Python版本为3.9.2,但安装@serialport/bindings@9.2.8时,prebuild-install未找到适配armv6架构的预编译二进制包,触发node-gyp rebuild操作。而当前配套的node-gyp v3.8.0仅支持Python2语法,与Python3.9.2不兼容,抛出SyntaxError。
关键报错信息
alfred@alfred:~/AccentaG4/src/mpu/server $ python --version Python 3.9.2 > @serialport/bindings@9.2.8 install /home/alfred/AccentaG4/src/mpu/server/node_modules/@serialport/bindings > prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild prebuild-install warn install No prebuilt binaries found (target=11.15.0 runtime=node arch=arm libc= platform=linux) gyp ERR! configure error gyp ERR! stack Error: Command failed: /usr/bin/python -c import sys; print "%s.%s.%s" % sys.version_info[:3]; gyp ERR! stack File "<string>", line 1 gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3]; gyp ERR! stack ^ gyp ERR! stack SyntaxError: invalid syntax gyp ERR! System Linux 6.1.21+ gyp ERR! node -v v11.15.0 gyp ERR! node-gyp -v v3.8.0
解决方案
方案1:升级node-gyp并配置Python3
- 全局更新node-gyp到支持Python3的版本:
npm install -g node-gyp@latest - 配置npm使用Python3:
npm config set python python3 - 重新执行安装命令:
npm install serialport
方案2:安装适配armv6的serialport版本
@serialport/bindings@9.2.8对armv6架构支持不足,可尝试安装更新且兼容的serialport版本:
npm install serialport@10.4.0
该版本对armv6架构的预编译支持更完善,同时兼容Python3。
方案3:临时安装Python2(应急方案)
若上述方案无法执行,可临时安装Python2.7并指定npm使用:
- 安装Python2.7:
sudo apt-get update && sudo apt-get install python2.7 - 配置npm默认使用Python2:
npm config set python python2.7 - 重新安装serialport:
npm install serialport
内容的提问来源于stack exchange,提问作者Ageis
相关产品推荐
相关产品推荐

