代码之家  ›  专栏  ›  技术社区  ›  Aring chi

找不到模块“canvas”

  •  -1
  • Aring chi  · 技术社区  · 2 年前

    为什么找不到模块画布

    1,我启动npm运行启动然后导出:

    [ERROR] 01:26:50 Error: Cannot find module 'canvas'
    Require stack:
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/pdfjs-dist/legacy/build/pdf.js
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/service/langchain/LangChainToolsServices.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/service/DealPdfService.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/controller/UploadController.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/router/upload.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/router/index.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/app/app.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/main.ts
    捕捉到了未知异常 Error: Cannot find module 'canvas'
    Require stack:
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/pdfjs-dist/legacy/build/pdf.js
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/service/langchain/LangChainToolsServices.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/service/DealPdfService.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/controller/UploadController.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/router/upload.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/router/index.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/app/app.ts
    - /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/main.ts
        at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1090:15)
        at Function.Module._load (node:internal/modules/cjs/loader:934:27)
        at Module.require (node:internal/modules/cjs/loader:1157:19)
        at __non_webpack_require__ (node:internal/modules/helpers:119:18)
        at checkDOMMatrix (/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/pdfjs-dist/legacy/build/webpack:/pdfjs-dist/build/pdf/src/shared/compatibility.js:24:26)
        at Object.defineProperty.value (/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/pdfjs-dist/legacy/build/webpack:/pdfjs-dist/build/pdf/src/shared/compatibility.js:20:1)
        at require (/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/pdfjs-dist/legacy/build/webpack:/pdfjs-dist/build/pdf/webpack/bootstrap:19:1)
        at Object.<anonymous> (/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/pdfjs-dist/legacy/build/webpack:/pdfjs-dist/build/pdf/src/shared/util.js:23:3)
        at require (/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/pdfjs-dist/legacy/build/webpack:/pdfjs-dist/build/pdf/webpack/bootstrap:19:1)
        at /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/pdfjs-dist/legacy/build/webpack:/pdfjs-dist/build/pdf/src/pdf.js:27:1 {
      code: 'MODULE_NOT_FOUND',
      requireStack: [
        '/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/pdfjs-dist/legacy/build/pdf.js',
        '/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/service/langchain/LangChainToolsServices.ts',
        '/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/service/DealPdfService.ts',
        '/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/controller/UploadController.ts',
        '/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/router/upload.ts',
        '/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/router/index.ts',
        '/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/app/app.ts',
        '/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/src/main.ts'
      ]
    }
    

    2、我想安装“canvas”模块,也失败了:

    error /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas: Command failed.
    Exit code: 1
    Command: node-pre-gyp install --fallback-to-build --update-binary
    Arguments: 
    Directory: /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas
    Output:
    node-pre-gyp info it worked if it ends with ok
    node-pre-gyp info using node-pre-gyp@1.0.10
    node-pre-gyp info using node@19.7.0 | darwin | arm64
    node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v111-darwin-unknown-arm64.tar.gz
    node-pre-gyp http download proxy agent configured using: "http://127.0.0.1:7890"
    node-pre-gyp ERR! install response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v111-darwin-unknown-arm64.tar.gz 
    node-pre-gyp WARN Pre-built binaries not installable for canvas@2.11.2 and node@19.7.0 (node-v111 ABI, unknown) (falling back to source compile with node-gyp) 
    node-pre-gyp WARN Hit error response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.11.2/canvas-v2.11.2-node-v111-darwin-unknown-arm64.tar.gz 
    gyp info it worked if it ends with ok
    gyp info using node-gyp@9.3.1
    gyp info using node@19.7.0 | darwin | arm64
    gyp info ok 
    gyp info it worked if it ends with ok
    gyp info using node-gyp@9.3.1
    gyp info using node@19.7.0 | darwin | arm64
    gyp info find Python using Python version 3.10.11 found at "/Users/Aring/anaconda3/bin/python3"
    gyp info spawn /Users/Aring/anaconda3/bin/python3
    gyp info spawn args [
    gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
    gyp info spawn args   'binding.gyp',
    gyp info spawn args   '-f',
    gyp info spawn args   'make',
    gyp info spawn args   '-I',
    gyp info spawn args   '/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas/build/config.gypi',
    gyp info spawn args   '-I',
    gyp info spawn args   '/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
    gyp info spawn args   '-I',
    gyp info spawn args   '/Users/Aring/Library/Caches/node-gyp/19.7.0/include/node/common.gypi',
    gyp info spawn args   '-Dlibrary=shared_library',
    gyp info spawn args   '-Dvisibility=default',
    gyp info spawn args   '-Dnode_root_dir=/Users/Aring/Library/Caches/node-gyp/19.7.0',
    gyp info spawn args   '-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp',
    gyp info spawn args   '-Dnode_lib_file=/Users/Aring/Library/Caches/node-gyp/19.7.0/<(target_arch)/node.lib',
    gyp info spawn args   '-Dmodule_root_dir=/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas',
    gyp info spawn args   '-Dnode_engine=v8',
    gyp info spawn args   '--depth=.',
    gyp info spawn args   '--no-parallel',
    gyp info spawn args   '--generator-output',
    gyp info spawn args   'build',
    gyp info spawn args   '-Goutput_dir=.'
    gyp info spawn args ]
    /bin/sh: pkg-config: command not found
    gyp: Call to 'pkg-config pixman-1 --libs' returned exit status 127 while in binding.gyp. while trying to load binding.gyp
    gyp ERR! configure error 
    gyp ERR! stack Error: `gyp` failed with exit code: 1
    gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:325:16)
    gyp ERR! stack     at ChildProcess.emit (node:events:512:28)
    gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:293:12)
    gyp ERR! System Darwin 21.2.0
    gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--update-binary" "--module=/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas/build/Release" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v111"
    gyp ERR! cwd /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas
    gyp ERR! node -v v19.7.0
    gyp ERR! node-gyp -v v9.3.1
    gyp ERR! not ok 
    node-pre-gyp ERR! build error 
    node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --update-binary --module=/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas/build/Release --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v111' (1)
    node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
    node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:512:28)
    node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1098:16)
    node-pre-gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:304:5)
    node-pre-gyp ERR! System Darwin 21.2.0
    node-pre-gyp ERR! command "/usr/local/bin/node" "/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--update-binary"
    node-pre-gyp ERR! cwd /Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas
    node-pre-gyp ERR! node -v v19.7.0
    node-pre-gyp ERR! node-pre-gyp -v v1.0.10
    node-pre-gyp ERR! not ok 
    Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --update-binary --module=/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/Users/Aring/Desktop/Project/ts/ai_office/ai_pdf_server/node_modules/canvas/build/Release --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v111' (1)
    info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.
    

    然后,我质疑chatGPT:

    The error message you provided indicates that there was an issue while trying to install the "canvas" package in a Node.js project. The error seems to be related to missing dependencies or configuration issues. Here are the key parts of the error message and some possible solutions:
    
    1. `node-pre-gyp ERR! install response status 404 Not Found`
       This error indicates that the package manager couldn't find the pre-built binary for the "canvas" package compatible with your environment. It tried to download a pre-compiled binary from a specific URL, but it received a "Not Found" (404) response.
    
    2. `gyp: Call to 'pkg-config pixman-1 --libs' returned exit status 127`
       This error indicates that the "pkg-config" command is not found on your system, which is needed to retrieve compilation flags for certain dependencies.
    
    To resolve these issues, follow these steps:
    
    1. Make sure you have all the necessary build dependencies installed on your system. For macOS, you can use Homebrew to install some essential packages:
    
       Open a terminal and run the following command:
       ```bash
       brew install pkg-config cairo pango libpng jpeg giflib
    
    1. 请确保已正确安装Node.js和npm(节点包管理器)。通过运行以下程序验证其版本:

      node -v
      npm -v
      
    2. 清除npm缓存以确保安装干净:

      npm cache clean --force
      
    3. 请尝试重新安装程序包:

      npm install canvas
      

    如果您使用的是Yarn,您也可以尝试使用Yarn安装软件包:

    yarn add canvas
    

    如果问题仍然存在,请考虑检查“canvas”包文档或GitHub存储库中是否提到任何特定的系统需求或依赖项。确保你的Node.js版本与你要安装的软件包兼容。

    此外,由于错误消息提到要下载的代理配置,请确保您的代理设置正确,或者如果不需要代理,请尝试在没有代理的情况下安装。

    通过执行这些步骤,您应该能够解决安装错误,并成功地为您的项目安装“canvas”包。

    
    
    AND it doesn't work
    
    
    1,why i can't install canvas module 
    
    2,how to fix it 
    
    0 回复  |  直到 2 年前
    推荐文章