2013-04-21 62 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

相關問題