1

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 

だから私は3つの質問があります:

  1. node.js サーバーを正常に実行する前に、socket.io をインストールするにはどうすればよいですか?

  2. Python はこれにどのように関連していますか? 私は自分の PC に Python を持っていません。

  3. この問題を解決するには?

EDITED socket.ioモジュールが更新されず、0.9.11バージョンのままであることを忘れていました

4

1 に答える 1

0

ネイティブ アドオンnode-gypをコンパイルするには Python が必要です。

その一例は でws、次のものにsocket.io-client依存します。

cwd ...\node_modules\socket.io\node_modules\socket.io-client\node_modules\ws

そして、以前にインストールした理由の違いは、ws. プロジェクトは、インストール時にコンパイルに失敗する"scripts": { "install": "..." }ことを許可する を指定していました。これらは両方とも (少なくとも v0.4.19 以降)削除されたようです。


node-gyp利用可能な修正の 1 つは、Python を含む の依存関係をインストールすることです。これにより、バグ修正を最新の状態に保つことができるため、おそらくこれが最適です。

もう 1 つは、の依存関係と互換性wsのある の下位バージョンを指定することです。socket.io-clientpackage.json

"dependencies": {
    "express": "3.0.3",
    "hjs": "0.0.4",
    "cradle": "0.6.4",
    "socket.io": "0.9.14",
    "ws": "0.4.19"
}
于 2013-04-21T09:04:50.837 に答える