npm install node-oracledb 失败

Posted

技术标签:

【中文标题】npm install node-oracledb 失败【英文标题】:npm install node-oracledb fails 【发布时间】:2019-08-30 10:46:19 【问题描述】:

我想通过节点 js 连接 oracle 数据库。为此,我尝试安装 node-oracledb 模块。

$ npm install oracle/node-oracledb#v3.1.2

这会引发以下错误消息。

oracledb@3.1.2 安装 C:\Users\Desktop\WebApp\node-oracle-db\node_modules\oracledb 节点gyp重建

C:\Users\Desktop\WebApp\node-oracle-db\node_modules\oracledb>如果没有 定义 npm_config_node_gyp (节点 "C:\Program 文件\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" 重建)否则(节点“C:\ Program 文件\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" 重建)gyp ERR!配置错误gyp ERR!堆栈错误:找不到 Python 可执行文件“python”,您可以设置 PYTHON 环境变量。石膏 呃!堆栈在 PythonFinder.failNoPython (C:\Program 文件\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:483:19) 吉普错误! PythonFinder 的堆栈。 (C:\程序 文件\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:508:16) 吉普错误!堆栈在 C:\Program 文件\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:284:29 吉普错误!堆栈在 FSReqWrap.oncomplete (fs.js:166:21) gyp ERR! 系统 Windows_NT 10.0.14393 gyp 错误!命令“C:\程序 文件\nodejs\node.exe" "C:\Program 文件\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" “重建” gyp ERR! cwd C:\Users\Desktop\WebApp\node-oracle-db\node_modules\oracledb gyp 错误! 节点 -v v9.5.0 gyp 错误!节点-gyp -v v3.6.2 gyp 错误!不好 npm 警告 oracle-db@1.0.0 没有描述 npm WARN oracle-db@1.0.0 没有存储库 字段。

npm 错误!代码 ELIFECYCLE npm 错误! errno 1 npm 错误! oracledb@3.1.2 安装:node-gyp rebuild npm 错误!退出状态 1 npm ERR! npm 错误! oracledb@3.1.2 安装脚本失败。 npm 错误!这大概是 npm 没问题。可能有额外的日志输出 以上。

npm 错误!可以在以下位置找到此运行的完整日志:npm ERR! C:\Users\AppData\Roaming\npm-cache_logs\2019-04-09T06_36_44_005Z-debug.log

我不明白为什么我需要有 python 依赖才能连接 oracle db?以及如何做到这一点?

【问题讨论】:

【参考方案1】:

Node 是使用使用 python 的 GYP 构建的。我认为这就是您收到此错误的原因。尽管要运行 Nodejs 应用程序,您根本不需要 python。也许这将是这个特定包的要求。您正在指定需要安装 python 的节点 oracle-db 版本。

您可以运行以下命令来解决您的问题

npm install oracledb

这不应该给你你所面临的错误。

如果这不起作用,您可以按照以下方式进行操作

您可以运行以下命令来解决您遇到的问题。

npm install --global --production windows-build-tools

这将在你的系统上安装 python。

然后就可以全局安装gyp了

npm install node-gyp

那么也许你可以安装你正在寻找的特定版本 node-oracledb

【讨论】:

如你所说,我已经安装了 windows-build-tools 和 node-gyp。当我运行npm install oracle/node-oracledb#v3.1.2 时,出现以下错误:gyp ERR!配置错误gyp ERR!堆栈错误:找不到 Python 可执行文件“python”,您可以设置 PYTHON 环境变量。吉普错误!堆栈在 PythonFinder.failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:483:19) 你需要以管理员身份运行npm install --global --production windows-build-tools 您也可以尝试安装Visual Studio 2015 Redistributable,然后您可以安装npm install oracledb 是的,我没有管理员权限,并且在安装 windows-build-tools 模块后 powershell 没有启动。 windows-build-tools +1s 请从管理 PowerShell 重新启动此脚本!有没有办法在没有管理员权限的情况下安装它? 然后试试这个install Visual Studio 2015 Redistributable 然后你就可以做npm install oracledb。这是链接https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads【参考方案2】:

通过node js连接oracle db,运行

npm 安装 oracledb

【讨论】:

以上是关于npm install node-oracledb 失败的主要内容,如果未能解决你的问题,请参考以下文章

linux上的Node-oracledb无效的ELF标头

更新查询在node-oracledb模块中挂起

一个查询中的 node-oracledb 多个语句

执行存储过程 NJS-012 时出现 node-oracledb 错误

ORA-00900: 无效的 SQL 语句 - 使用 node-oracledb 运行查询时

使用带有 node-oracledb 的 SID 连接到 Oracle DB 失败