You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中tfjs-node报ERR_DLOPEN_FAILED错误及替代方案咨询

Node.js中使用tfjs-node遇ERR_DLOPEN_FAILED错误的解决及替代方案

我在Node.js服务器中尝试使用tfjs-node,写入导入语句时出现ERR_DLOPEN_FAILED错误。相关代码及package.json依赖如下:

// 导入语句
import express from "express";
import pool from "../config/pgConfig.cjs";
import path from "path";
import * as tf from "@tensorflow/tfjs-node";
// package.json 依赖
{
  "dependencies": {
    "@braintree/sanitize-url": "^7.0.0",
    "@mediapipe/face_detection": "^0.4.1646425229",
    "@supabase/supabase-js": "^2.39.7",
    "@tanstack/react-table": "^8.11.2",
    "@tensorflow-models/blazeface": "^0.1.0",
    "@tensorflow-models/face-detection": "^1.0.2",
    "@tensorflow/tfjs": "^4.17.0",
    "@tensorflow/tfjs-backend-webgl": "^4.17.0",
    "@tensorflow/tfjs-converter": "^4.17.0",
    "@tensorflow/tfjs-core": "^4.17.0",
    "@tensorflow/tfjs-node": "^4.17.0",
    "@tensorflow/tfjs-node-gpu": "^4.17.0",
    "bcrypt": "^5.1.1",
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.20.2",
    "compression": "^1.7.4",
    "cookie-parser": "^1.4.6",
    "cors": "^2.8.5",
    "dotenv": "^16.3.1",
    "easy-waf": "^0.5.2",
    "express": "^4.18.2",
    "express-fileupload": "^1.4.3",
    "express-rate-limit": "^7.1.5",
    "express-session": "^1.17.3",
    "helmet": "^7.1.0",
    "jsonwebtoken": "^9.0.2",
    "multer": "^1.4.5-lts.1",
    "nodemon": "^3.0.2",
    "passport": "^0.7.0",
    "passport-local": "^1.0.0",
    "passport-local-mongoose": "^8.0.0",
    "perfect-express-sanitizer": "^1.0.13",
    "permissions-policy": "^0.6.0",
    "pg": "^8.11.3",
    "python-shell": "^5.0.0",
    "rate-limiter-flexible": "^4.0.0",
    "redis": "^4.6.13",
    "spdy": "^4.0.2",
    "tiny-csrf": "^1.1.3",
    "uuidv4": "^6.2.13",
    "winston": "^3.11.0"
  }
}

我已尝试以下操作,但问题仍未解决:

  • 更新npm
  • 删除node_modules后重新执行npm install
  • 安装bcrypt

一、解决tfjs-node的ERR_DLOPEN_FAILED错误

这个错误大多是二进制文件兼容问题或系统依赖缺失导致,可按以下步骤排查:

  1. 核对Node.js版本:tfjs-node v4.17.0兼容Node.js 16.x、18.x、20.x版本,用node -v查看当前版本,不兼容则用nvm等工具切换版本。
  2. 彻底清理重装:执行npm cache clean --force,删除node_modules和package-lock.json,再重新运行npm install。
  3. 补全系统依赖:
    • Linux:执行sudo apt-get install build-essential安装基础编译库;
    • macOS:运行xcode-select --install安装Xcode命令行工具;
    • Windows:以管理员身份执行npm install --global windows-build-tools安装编译工具。
  4. 移除冲突依赖:你的package.json中同时安装了@tensorflow/tfjs-node和@tensorflow/tfjs-node-gpu,二者不能共存,删除其中一个(无GPU环境则删gpu版)后重新安装。

二、后端运行TensorFlow模型的替代方案

如果tfjs-node始终无法正常工作,可考虑以下方案:

  1. 使用纯JS版本的TensorFlow.js:移除@tensorflow/tfjs-node,仅保留@tensorflow/tfjs,导入后设置CPU后端:
    import * as tf from '@tensorflow/tfjs';
    tf.setBackend('cpu');
    
    无需编译二进制,兼容性强,仅性能略低于node版。
  2. Python TensorFlow服务+Node.js调用:用Python编写TensorFlow推理接口(比如FastAPI或Flask服务),Node.js通过HTTP请求或python-shell调用该服务,适合高性能需求的复杂模型。
  3. ONNX Runtime:将TensorFlow模型转换为ONNX格式,使用onnxruntime-node在Node.js中运行,兼容性和性能表现优异,支持多平台。

内容的提问来源于stack exchange,提问作者Kartic Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 14:05:37