TryGhost / node-sqlite3

SQLite3 bindings for Node.js
BSD 3-Clause "New" or "Revised" License
6.15k stars 809 forks source link

npm install sqlite3 fail if prebuilt unreachable and Python v3.12 is installed #1752

Open yfdyh000 opened 6 months ago

yfdyh000 commented 6 months ago

Issue Summary

Retrieval of pre-built files failed due to my network issue. Then, the build step fails due to Python and node-gyp version incompatibility.

https://github.com/nodejs/node-gyp/issues/2869 https://github.com/nodejs/node-gyp/issues/2942#issuecomment-1807535065

Relevant logs or output

691 verbose pkgid sqlite3@5.1.7

693 verbose Windows_NT 10.0.19045 694 verbose node v18.17.0 695 verbose npm v10.2.5

prebuild-install warn install connect ETIMEDOUT 20.205.243.166:443

700 error gyp info spawn args ] 700 error Traceback (most recent call last): 700 error File "[dir]\node_modules\node-gyp\gyp\gyp_main.py", line 42, in 700 error import gyp # noqa: E402 700 error ^^^^^^^^^^ 700 error File "[dir]\node_modules\node-gyp\gyp\pylib\gyp__init__.py", line 9, in 700 error import gyp.input 700 error File "[dir]\node_modules\node-gyp\gyp\pylib\gyp\input.py", line 19, in 700 error from distutils.version import StrictVersion 700 error ModuleNotFoundError: No module named 'distutils' 700 error gyp ERR! configure error 700 error gyp ERR! stack Error: gyp failed with exit code: 1 700 error gyp ERR! stack at ChildProcess.onCpExit ([dir]\node_modules\node-gyp\lib\configure.js:259:16) 700 error gyp ERR! stack at ChildProcess.emit (node:events:514:28) 700 error gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:291:12) 700 error gyp ERR! System Windows_NT 10.0.19045 700 error gyp ERR! command "C:\Program Files\nodejs\node.exe" "[dir]\node_modules\node-gyp\bin\node-gyp.js" "rebuild" 700 error gyp ERR! cwd [dir]\node_modules\sqlite3 700 error gyp ERR! node -v v18.17.0 700 error gyp ERR! node-gyp -v v8.4.1 700 error gyp ERR! not ok 701 verbose exit 1

Version

5.1.7

Node.js Version

18.17.0

How did you install the library?

Windows 10 x64

segevfiner commented 5 months ago

Need to bump prebuild-install AFAIK.

Rob3rtS commented 2 months ago

I hit the same issue: my network situation does not allow downloading the prebuilt binary, and I need to upgrade to Python 3.12 due to security reasons. There is even a (imho non-straight-forward) way to update npm's internal node-gyp version to 10.x: https://github.com/nodejs/node-gyp/blob/main/docs/Updating-npm-bundled-node-gyp.md

But the peerDependencies (https://github.com/TryGhost/node-sqlite3/blame/master/package.json#L58) and optionalDependencies (https://github.com/TryGhost/node-sqlite3/blame/master/package.json#L66) seem to prevent using a higher major version of node-gyp.

Would it work with "node-gyp": "^8.0.0" (to allow for higher major version as well?