Ionic项目创建失败:npm i执行出错(缺少Python环境)
解决node-sass构建失败(Python未找到)的问题
问题根源
我之前也碰到过老版本node-sass的这个坑——node-sass@4.7.2必须依赖Python 2.7,你的系统要么没装Python 2.7,要么没把它加到系统PATH环境变量里,导致node-gyp找不到Python来完成编译,才会抛出这个退出码1的错误。
一步步解决问题
1. 安装Python 2.7(关键!别装3.x)
先去Python官网下载Python 2.7.x的安装包(选和你Node.js匹配的架构,比如x64或x86)。安装的时候一定要勾选「Add Python to PATH」选项,这样系统才能自动找到它。如果安装时漏选了,后面手动添加PATH也可以。
2. 验证Python是否在PATH里
打开命令提示符(CMD)或者PowerShell,输入:
python --version
如果输出Python 2.7.x,说明已经配置好了。要是提示找不到命令,就手动添加PATH:
- Windows:右键「此电脑」→ 属性 → 高级系统设置 → 环境变量 → 在系统变量的
PATH里添加Python 2.7的安装路径(比如C:\Python27) - 重启命令提示符,再验证一次。
3. 用npm直接指定Python路径(不想改PATH的话用这个)
如果不想动系统PATH,可以直接告诉npm用哪个Python版本:
npm config set python python2.7
这条命令会让npm在需要Python时直接调用2.7版本,不用依赖系统PATH。
4. 重新安装项目依赖
回到你的Ionic项目目录,先清理之前失败的安装残留,再重新执行安装:
# Windows系统用下面的命令 rmdir /s/q node_modules del package-lock.json # Mac/Linux系统用下面的命令 rm -rf node_modules package-lock.json # 然后重新安装 npm install
备选方案:跳过编译,直接用预编译二进制包
如果还是编译失败,可以强制node-sass下载现成的二进制包,不用本地编译:
npm install node-sass@4.7.2 --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
执行完这条再跑npm install,就能跳过编译步骤,直接用现成的二进制文件了。
额外提醒
你的Node.js版本是10.1.0,和node-sass@4.7.2是兼容的,不用换Node版本。等以后升级到更高版本的node-sass,就不用纠结Python 2.7了——新版本要么支持Python 3,要么已经不需要本地编译了。
内容的提问来源于stack exchange,提问作者Ramya
相关产品推荐
相关产品推荐

