我正在尝试在 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)
最佳答案
是的,Python 是必需的。
您需要安装 2.7 版。
您还需要设置 PYTHON
环境变量,例如c:\python27\python.exe
(确保可以从运行 env p
的命令行访问它)
您需要安装 Visual Studio (C++),免费的 Express 版本即可。
根据您的 Visual Studio 版本,您必须将此参数添加到您的 npm install
命令:
npm install --msvs_version=<version>
其中 <version>
可能是 2012
, 2013
或 2015
例如。
依赖项由 node-gyp
引入由 Node.js MongoDb 驱动程序使用。可以找到 Windows 的安装说明 here (比这个答案显示更多细节)。
关于python - MongoDB node.js驱动安装需要Python吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32684260/