MongoDB node.js驱动程序安装是否需要Python?

时间:2015-09-20 21:00:28

标签: python node.js mongodb installation

我正在尝试在Windows 10上为Nodejs安装mongodb驱动程序,并获得有关Python的以下错误。

Python是预先评估的吗? 而且它也只期望Python版本2.5到3.0。 在Python之上它一直要求其他MS Visual Studio 2008或MS SDK / .Net安装? 是否需要所有这些作为预先评估。

C:\Jay\M101JS>npm install mongodb
-
> kerberos@0.0.14 install C:\Jay\M101JS\node_modules\mongodb\node_modules\mongodb-core\node_modules\kerberos
> (node-gyp rebuild) || (exit 0)


C:\Jay\M101JS\node_modules\mongodb\node_modules\mongodb-core\node_modules\kerberos>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node  rebuild )
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:116:14)
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:71:11
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:82:15)
gyp ERR! System Windows_NT 10.0.10240
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Jay\M101JS\node_modules\mongodb\node_modules\mongodb-core\node_modules\kerberos
gyp ERR! node -v v4.0.0
gyp ERR! node-gyp -v v3.0.1
gyp ERR! not ok
mongodb@2.0.43 node_modules\mongodb
├── es6-promise@2.1.1
├── readable-stream@1.0.31 (string_decoder@0.10.31, inherits@2.0.1, isarray@0.0.1, core-util-is@1.0.1)
└── mongodb-core@1.2.12 (bson@0.4.12, kerberos@0.0.14)

更新

我在安装Python 2.7& Visual Studio Express(免费),现在得到以下错误,

C:\Jay\MongoDb\M101JS>npm install mongodb
-
> kerberos@0.0.14 install C:\Jay\MongoDb\M101JS\node_modules\mongodb\node_modules\mongodb-core\node_modules\kerberos
> (node-gyp rebuild) || (exit 0)


C:\Jay\MongoDb\M101JS\node_modules\mongodb\node_modules\mongodb-core\node_modules\kerberos>if not defined npm_config_node_gyp (node "C:\Program Files\
nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node  rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(366,5): warning MSB8003: Could not find WindowsSDKDir variable from
 the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number. [C:\Jay\MongoDb\M101JS\node_modules\mongodb\node_m
odules\mongodb-core\node_modules\kerberos\build\kerberos.vcxproj]
TRACKER : error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified. [C:\Jay\MongoDb\M101JS\node_modules\mongodb\node_modu
les\mongodb-core\node_modules\kerberos\build\kerberos.vcxproj]


gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebui
ld"
gyp ERR! cwd C:\Jay\MongoDb\M101JS\node_modules\mongodb\node_modules\mongodb-core\node_modules\kerberos
gyp ERR! node -v v4.0.0
gyp ERR! node-gyp -v v3.0.1
gyp ERR! not ok
mongodb@2.0.43 node_modules\mongodb
├── readable-stream@1.0.31 (string_decoder@0.10.31, isarray@0.0.1, inherits@2.0.1, core-util-is@1.0.1)
├── es6-promise@2.1.1
└── mongodb-core@1.2.12 (bson@0.4.12, kerberos@0.0.14)

2 个答案:

答案 0 :(得分:5)

是的,Python是必需的。

您需要安装2.7版。 您还需要将PYTHON环境变量设置为例如c:\python27\python.exe(确保可以从运行env p的命令行访问)

您需要安装Visual Studio(C ++),免费的Express版本可以。

在Visual Studio版本上降级,您必须将此参数添加到npm install命令中:

npm install --msvs_version=<version>其中<version>可能是201220132015

node-gyp引入的依赖性由Node.js MongoDb驱动程序使用。可以找到Windows的安装说明here(显示的详细信息略多于此答案)。

答案 1 :(得分:1)

此问题与mongodb驱动程序无关,而与node-gyp无关,node-gyp是将二进制模块添加到节点的工具。你可以在stackoverflow上找到很多答案,只需搜索node-gyp和windows。您可以找到许多答案之一here

相关问题