升级node@22后运行npm install报错 distutils not found

部署运行你感兴趣的模型镜像

从node@20升级到node22后,在运行 npm install 的时候报了很多 gyp 错误,其中包括 npm error npm error ModuleNotFoundError: No module named 'distutils'

问题原因是我在使用 brew install node@22 的过程中自动把 python 升级到了 3.13。而 distutils module 在 python 3.12 中被移除了,此时就需要我们手动安装 setuptools 来解决,比如:

python3 -m pip install setuptools

或者如果是使用homebrew安装的话,使用下面命令安装

brew install python-setuptools

然后重新运行 npm install,问题解决。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Microsoft Windows [版本 10.0.26100.6899] (c) Microsoft Corporation。保留所有权利。 C:\Users\admin>python -c "import distutils; print('OK')" OK C:\Users\admin>npm config set python python C:\Users\admin>cd C:\Users\admin\Desktop\nature C:\Users\admin\Desktop\nature> C:\Users\admin\Desktop\nature>rmdir /s /q node_modules 系统找不到指定的文件。 C:\Users\admin\Desktop\nature>del package-lock.json 找不到 C:\Users\admin\Desktop\nature\package-lock.json C:\Users\admin\Desktop\nature> C:\Users\admin\Desktop\nature>npm install serialport@10.4.0 --build-from-source --verbose npm verb cli C:\nvm4w\nodejs\node.exe C:\nvm4w\nodejs\node_modules\npm\bin\npm-cli.js npm info using npm@8.19.3 npm info using node@v16.19.1 npm timing npm:load:whichnode Completed in 1ms npm timing config:load:defaults Completed in 1ms npm timing config:load:file:C:\Users\admin\AppData\Local\nvm\v16.19.1\node_modules\npm\npmrc Completed in 1ms npm timing config:load:builtin Completed in 1ms npm timing config:load:cli Completed in 2ms npm timing config:load:env Completed in 0ms npm timing config:load:file:C:\Users\admin\Desktop\nature\.npmrc Completed in 0ms npm timing config:load:project Completed in 3ms npm timing config:load:file:C:\Users\admin\.npmrc Completed in 1ms npm timing config:load:user Completed in 1ms npm timing config:load:file:C:\nvm4w\nodejs\etc\npmrc Completed in 0ms npm timing config:load:global Completed in 0ms npm timing config:load:validate Completed in 1ms npm timing config:load:credentials Completed in 0ms npm timing config:load:setEnvs Completed in 1ms npm timing config:load Completed in 10ms npm timing npm:load:configload Completed in 10ms npm timing npm:load:mkdirpcache Completed in 1ms npm timing npm:load:mkdirplogs Completed in 0ms npm verb title npm install serialport@10.4.0 npm verb argv "install" "serialport@10.4.0" "--build-from-source" "--loglevel" "verbose" npm timing npm:load:setTitle Completed in 1ms npm timing config:load:flatten Completed in 2ms npm timing npm:load:display Completed in 10ms npm verb logfile logs-max:10 dir:C:\Users\admin\AppData\Local\npm-cache\_logs npm verb logfile C:\Users\admin\AppData\Local\npm-cache\_logs\2025-11-28T09_53_53_710Z-debug-0.log npm timing npm:load:logFile Completed in 8ms npm timing npm:load:timers Completed in 0ms npm timing npm:load:configScope Completed in 0ms npm timing npm:load Completed in 32ms npm timing arborist:ctor Completed in 0ms npm timing arborist:ctor Completed in 0ms npm timing idealTree:init Completed in 10ms npm timing idealTree:userRequests Completed in 2ms npm http fetch GET 200 https://registry.npmmirror.com/serialport 124ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/ws 25ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/bufferutil 31ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/utf-8-validate 34ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/debug 86ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fparser-inter-byte-timeout 109ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fbindings-cpp 111ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fparser-spacepacket 117ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fparser-cctalk 121ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fparser-packet-length 123ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fparser-readline 123ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fbinding-mock 127ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fparser-ready 127ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fparser-slip-encoder 137ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fparser-delimiter 191ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fstream 304ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fparser-regex 507ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fparser-byte-length 510ms (cache revalidated) npm timing idealTree:#root Completed in 743ms npm http fetch GET 200 https://registry.npmmirror.com/node-addon-api 26ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/ms 28ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/node-gyp-build 36ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fbindings-interface 154ms (cache revalidated) npm http fetch GET 200 https://registry.npmmirror.com/@serialport%2fbindings-interface 155ms (cache revalidated) npm timing idealTree:node_modules/serialport Completed in 177ms npm timing idealTree:node_modules/@serialport/binding-mock Completed in 2ms npm timing idealTree:node_modules/@serialport/bindings-cpp Completed in 6ms npm timing idealTree:node_modules/@serialport/bindings-interface Completed in 0ms npm timing idealTree:node_modules/@serialport/parser-byte-length Completed in 0ms npm timing idealTree:node_modules/@serialport/parser-cctalk Completed in 0ms npm timing idealTree:node_modules/@serialport/parser-delimiter Completed in 0ms npm timing idealTree:node_modules/@serialport/parser-inter-byte-timeout Completed in 0ms npm timing idealTree:node_modules/@serialport/parser-packet-length Completed in 0ms npm timing idealTree:node_modules/@serialport/parser-readline Completed in 0ms npm timing idealTree:node_modules/@serialport/parser-ready Completed in 0ms npm timing idealTree:node_modules/@serialport/parser-regex Completed in 0ms npm timing idealTree:node_modules/@serialport/parser-slip-encoder Completed in 0ms npm timing idealTree:node_modules/@serialport/parser-spacepacket Completed in 0ms npm timing idealTree:node_modules/@serialport/stream Completed in 1ms npm timing idealTree:node_modules/debug Completed in 0ms npm timing idealTree:node_modules/ms Completed in 0ms npm timing idealTree:node_modules/node-addon-api Completed in 0ms npm timing idealTree:node_modules/node-gyp-build Completed in 0ms npm timing idealTree:node_modules/ws Completed in 0ms npm timing idealTree:node_modules/@serialport/bindings-cpp/node_modules/@serialport/bindings-interface Completed in 1ms npm timing idealTree:node_modules/@serialport/stream/node_modules/@serialport/bindings-interface Completed in 0ms npm timing idealTree:buildDeps Completed in 936ms npm timing idealTree:fixDepFlags Completed in 1ms npm timing idealTree Completed in 952ms npm timing reify:loadTrees Completed in 953ms npm timing reify:diffTrees Completed in 1ms npm timing reify:retireShallow Completed in 1ms npm timing reify:createSparse Completed in 10ms npm timing reify:loadBundles Completed in 0ms npm http fetch POST 404 https://registry.npmmirror.com/-/npm/v1/security/advisories/bulk 45ms npm http fetch POST 404 https://registry.npmmirror.com/-/npm/v1/security/audits/quick 17ms npm verb audit error HttpErrorGeneral: 404 Not Found - POST https://registry.npmmirror.com/-/npm/v1/security/audits/quick - [NOT_IMPLEMENTED] /-/npm/v1/security/* not implemented yet npm verb audit error at C:\Users\admin\AppData\Local\nvm\v16.19.1\node_modules\npm\node_modules\npm-registry-fetch\lib\check-response.js:95:15 npm verb audit error at processTicksAndRejections (node:internal/process/task_queues:96:5) npm verb audit error at async Map.[getReport] (C:\Users\admin\AppData\Local\nvm\v16.19.1\node_modules\npm\node_modules\@npmcli\arborist\lib\audit-report.js:335:21) npm verb audit error at async Map.run (C:\Users\admin\AppData\Local\nvm\v16.19.1\node_modules\npm\node_modules\@npmcli\arborist\lib\audit-report.js:106:19) npm verb audit error HttpErrorGeneral: 404 Not Found - POST https://registry.npmmirror.com/-/npm/v1/security/audits/quick - [NOT_IMPLEMENTED] /-/npm/v1/security/* not implemented yet npm verb audit error at C:\Users\admin\AppData\Local\nvm\v16.19.1\node_modules\npm\node_modules\npm-registry-fetch\lib\check-response.js:95:15 npm verb audit error at processTicksAndRejections (node:internal/process/task_queues:96:5) npm verb audit error at async Map.[getReport] (C:\Users\admin\AppData\Local\nvm\v16.19.1\node_modules\npm\node_modules\@npmcli\arborist\lib\audit-report.js:335:21) npm verb audit error at async Map.run (C:\Users\admin\AppData\Local\nvm\v16.19.1\node_modules\npm\node_modules\@npmcli\arborist\lib\audit-report.js:106:19) { npm verb audit error headers: [Object: null prototype] { npm verb audit error server: [ 'Tengine' ], npm verb audit error date: [ 'Fri, 28 Nov 2025 09:53:53 GMT' ], npm verb audit error 'content-type': [ 'application/json' ], npm verb audit error 'transfer-encoding': [ 'chunked' ], npm verb audit error connection: [ 'keep-alive' ], npm verb audit error 'strict-transport-security': [ 'max-age=5184000' ], npm verb audit error via: [ 'kunlun2.cn8358[,404666]' ], npm verb audit error 'timing-allow-origin': [ '*' ], npm verb audit error eagleid: [ '7544591617643236332911615e' ], npm verb audit error 'x-fetch-attempts': [ '1' ] npm verb audit error }, npm verb audit error statusCode: 404, npm verb audit error code: 'E404', npm verb audit error method: 'POST', npm verb audit error uri: 'https://registry.npmmirror.com/-/npm/v1/security/audits/quick', npm verb audit error body: { npm verb audit error error: '[NOT_IMPLEMENTED] /-/npm/v1/security/* not implemented yet' npm verb audit error }, npm verb audit error pkgid: undefined npm verb audit error } npm timing auditReport:getReport Completed in 77ms npm timing reify:audit Completed in 78ms npm timing reifyNode:node_modules/ms Completed in 94ms npm timing reifyNode:node_modules/@serialport/parser-ready Completed in 100ms npm timing reifyNode:node_modules/@serialport/parser-packet-length Completed in 101ms npm timing reifyNode:node_modules/@serialport/parser-readline Completed in 101ms npm timing reifyNode:node_modules/@serialport/parser-byte-length Completed in 100ms npm timing reifyNode:node_modules/@serialport/parser-inter-byte-timeout Completed in 103ms npm timing reifyNode:node_modules/@serialport/parser-regex Completed in 103ms npm timing reifyNode:node_modules/@serialport/parser-cctalk Completed in 103ms npm timing reifyNode:node_modules/@serialport/parser-delimiter Completed in 103ms npm timing reifyNode:node_modules/@serialport/stream Completed in 105ms npm timing reifyNode:node_modules/@serialport/parser-spacepacket Completed in 110ms npm timing reifyNode:node_modules/@serialport/bindings-interface Completed in 110ms npm timing reifyNode:node_modules/@serialport/bindings-cpp/node_modules/@serialport/bindings-interface Completed in 110ms npm timing reifyNode:node_modules/@serialport/binding-mock Completed in 110ms npm timing reifyNode:node_modules/@serialport/stream/node_modules/@serialport/bindings-interface Completed in 112ms npm timing reifyNode:node_modules/debug Completed in 112ms npm timing reifyNode:node_modules/node-gyp-build Completed in 115ms npm timing reifyNode:node_modules/@serialport/parser-slip-encoder Completed in 120ms npm timing reifyNode:node_modules/serialport Completed in 120ms npm timing reifyNode:node_modules/ws Completed in 162ms npm timing reifyNode:node_modules/node-addon-api Completed in 170ms npm timing reifyNode:node_modules/@serialport/bindings-cpp Completed in 257ms npm timing reify:unpack Completed in 258ms npm timing reify:unretire Completed in 0ms npm timing build:queue Completed in 2ms npm timing build:link:node_modules/node-gyp-build Completed in 19ms npm timing build:link Completed in 19ms npm info run @serialport/bindings-cpp@10.7.0 install node_modules/@serialport/bindings-cpp node-gyp-build npm info run @serialport/bindings-cpp@10.7.0 install { code: 0, signal: null } npm timing build:run:install:node_modules/@serialport/bindings-cpp Completed in 6904ms npm timing build:run:install Completed in 6906ms npm timing build:deps Completed in 6927ms npm timing build Completed in 6927ms npm timing reify:build Completed in 6928ms npm timing reify:trash Completed in 0ms npm timing reify:save Completed in 7ms npm timing reify Completed in 8178ms added 22 packages in 8s 12 packages are looking for funding run `npm fund` for details npm timing command:install Completed in 8183ms npm verb exit 0 npm timing npm Completed in 8342ms npm info ok C:\Users\admin\Desktop\nature>
最新发布
11-29
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值