TryGhost / node-sqlite3

SQLite3 bindings for Node.js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

yfdyh000 opened this issue · comments

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.

nodejs/node-gyp#2869
nodejs/node-gyp#2942 (comment)

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

Need to bump prebuild-install AFAIK.

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?