2013-04-21 101 views
1

我试图更新我socket.io版本(目前是0.9.11),所以我编辑的package.json文件:错误的“故宫安装socket.io”

{ 
    "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 

所以我有三个问题:

  1. 我是怎么安装socket.io之前+运行我的node.js服务器成功?

  2. Python是如何与此相关的?我的电脑上没有Python,我不知道应该有。

  3. 如何解决这个问题?

EDITED 刚才忘了提,socket.io模块没有得到更新,并保持在0.9.11版本

回答

0

Python是由node-gyp需要编译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。这可能是最好的,因为它可以让你保持最新的bug修复。

另一种是指定的ws较低版本,这仍然compatible with socket.io-client's dependencies,将其添加到您的package.json

"dependencies": { 
    "express": "3.0.3", 
    "hjs": "0.0.4", 
    "cradle": "0.6.4", 
    "socket.io": "0.9.14", 
    "ws": "0.4.19" 
} 
+0

感谢。当你说“安装node-gyp的依赖关系”时,你的意思是只输入“npm install node-gyp”? (有/没有将它添加到我的package.json文件?)。 ,你的意思是安装在我的应用程序的目录? – ohadinho 2013-04-21 11:20:04

+0

@ohadinho两者。 'node-gyp'需要使用python和其他(取决于你的操作系统),现在需要安装最新版本的'ws',这会影响你是否可以安装'socket.io'。 – 2013-04-21 20:48:20

+0

在添加你写的'ws'行后,我可以在我的应用程序中成功安装socket.io而不会出现任何错误。 但由于某种原因,当我点击“节点”和“require('socket.io')。版本”我仍然看到版本是0.9.11!这是为什么 ? – ohadinho 2013-04-22 07:41:32

相关问题