0

Node.js 用の Postgres データベース モジュールのインストールに問題があります。コマンド「npm install pg」を実行するたびに、次のエラーが表示されます。
C:>npm install pg
npm http GET https://registry.npmjs.org/pg
npm http 200 https://registry.npmjs.org/pg
npm http GET https://registry.npmjs.org/pg/-/pg-0.12.1.tgz
npm http 200 https://registry.npmjs.org/pg/-/pg-0.12.1.tgz
npm http GET https://registry.npmjs.org/generic-pool/2.0.2
npm http 200 https://registry.npmjs.org/generic-pool/2.0.2
npm http GET https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.2.tgz
npm http 200 https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.2.tgz

pg@0.12.1 install C:\node_modules\pg
node-gyp rebuild || (exit 0)

C:\node_modules\pg>node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-b
in\....\node_modules\node-gyp\bin\node-gyp.js" rebuild
'pg_config' is not recognized as an internal or external command,
operable program or batch file.
gyp: Call to 'pg_config --libdir' returned exit status 1. while trying to load b
inding.gyp
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (C:\Program Files\nodejs\node_module
s\npm\node_modules\node-gyp\lib\configure.js:420:16)
gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:99:17)
gyp ERR! stack at Process._handle.onexit (child_process.js:678:10)
gyp ERR! System Windows_NT 5.1.2600
gyp ERR! command "node" "C:\Program Files\nodejs\node_modules\npm\node_modu
les\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\node_modules\pg
gyp ERR! node -v v0.8.17
gyp ERR! node-gyp -v v0.8.2
gyp ERR! not ok
pg@0.12.1 node_modules\pg
└── generic-pool@2.0.2

このエラーは、仕事用マシン (linux/windows ボックス) と自宅の個人用マシン (windows) の両方で発生します。何か案は?

また、すでに Python 2.7.3 がインストールされていることにも言及する必要があります。

4

3 に答える 3

5

Windows を使用している場合:

'pg_config' is not recognized as an internal or external command, operable program or batch file.

そのため、pg モジュールのビルド済みバイナリを取得することをお勧めします。Windows でのコンパイルは... 楽しいものです。

直接のエラーは、pg_config実行可能ファイルが にないPATHことですが、修正するとさらに多くのエラーが発生します。発見と悪口の旅を計画していない限り、ビルド済みの実行可能ファイルを入手してください。

于 2013-01-29T07:47:05.450 に答える