我正在尝试更新我的socket.io版本(当前为0.9.11),因此我将package.json文件编辑为:
{
"name": "aaa",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "app.js"
},
"dependencies": {
"express": "3.0.3",
"hjs": "0.0.4",
"cradle": "0.6.4",
"socket.io": "0.9.14"
},
"subdomain": "aaa",
"engines": {
"node": "0.6.x"
}
}
我遇到了奇怪的错误:
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack at failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:113:14)
gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:81:11
gyp ERR! stack at Object.oncomplete (fs.js:107:15)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\apps\sms - part 2\node_modules\socket.io\node_modules\socket.io-client\node_modules\ws
gyp ERR! node -v v0.10.3
gyp ERR! node-gyp -v v0.9.5
gyp ERR! not ok
所以我有三个问题:
如何成功安装socket.io并成功运行我的node.js服务器?
Python如何与此相关?我的PC上没有Python,我不知道应该有。
如何解决这个问题?
EDITED 只是忘了提到socket.io模块没有得到更新并保持在0.9.11版本
答案 0 :(得分:0)
node-gyp
需要Python来编译native addons。
一个例子是ws
,socket.io-client
取决于:
cwd ...\node_modules\socket.io\node_modules\socket.io-client\node_modules\ws
并且之前安装的原因之差可能在ws
之内。该项目在安装时指定了"scripts": { "install": "..." }
,允许failing to compile。从那以后,这两个似乎都有(v0.4.19,至少)been removed。
一个可用的修复方法是安装node-gyp
的依赖项,包括Python。这可能是最好的,因为它可以让您及时了解错误修复。
另一种方法是将ws
的较低版本指定为package.json
,将其添加到"dependencies": {
"express": "3.0.3",
"hjs": "0.0.4",
"cradle": "0.6.4",
"socket.io": "0.9.14",
"ws": "0.4.19"
}
:
{{1}}