Strapi installation keeps failing (gyp errors thrown)

System Information
  • Strapi Version: latest(4.21.0)
  • Operating System: Windows 11
  • Database: sqlite
  • Node Version: 20.11.1
  • NPM Version: 10.2.1
  • Yarn Version: 1.22.19

While trying to install strapi (to a PC I’ve installed strapi successfully in the past with no issues and no changes since then) I keep getting the error below during step 5 of the installation:

\node_modules\better-sqlite3>if not defined npm_config_node_gyp (node “C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\…..\node_modules\node-gyp\bin\node-gyp.js” rebuild --release ) else (node “C:\Users\cxXni\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js” rebuild --release )
gyp info it worked if it ends with ok
gyp info using node-gyp@9.4.0
gyp info using node@20.11.1 | win32 | x64
gyp info find Python using Python version 3.12.2 found at “C:\Python312\python.exe”
gyp info find VS using VS2022 (17.9.34714.143) found at:
gyp info find VS “C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools”
gyp info find VS run with --verbose for detailed information
gyp info spawn C:\Python312\python.exe
gyp info spawn args [
gyp info spawn args ‘C:\Users\cxXni\AppData\Roaming\npm\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 ‘msvs’,
gyp info spawn args ‘-I’,
gyp info spawn args ‘C:\Users\cxXni\OneDrive\Documents\my-websites\ctsolutions.gr\backend\node_modules\better-sqlite3\build\config.gypi’,
gyp info spawn args ‘-I’,
gyp info spawn args ‘C:\Users\cxXni\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\addon.gypi’,
gyp info spawn args ‘-I’,
gyp info spawn args ‘C:\Users\cxXni\AppData\Local\node-gyp\Cache\20.11.1\include\node\common.gypi’,
gyp info spawn args ‘-Dlibrary=shared_library’,
gyp info spawn args ‘-Dvisibility=default’,
gyp info spawn args ‘-Dnode_root_dir=C:\Users\cxXni\AppData\Local\node-gyp\Cache\20.11.1’,
gyp info spawn args ‘-Dnode_gyp_dir=C:\Users\cxXni\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp’,
gyp info spawn args ‘-Dnode_lib_file=C:\\Users\\cxXni\\AppData\\Local\\node-gyp\\Cache\\20.11.1\\<(target_arch)\\node.lib’,
gyp info spawn args ‘-Dmodule_root_dir=C:\Users\cxXni\OneDrive\Documents\my-websites\ctsolutions.gr\backend\node_modules\better-sqlite3’,
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 ‘C:\Users\cxXni\OneDrive\Documents\my-websites\ctsolutions.gr\backend\node_modules\better-sqlite3\build’,
gyp info spawn args ‘-Goutput_dir=.’
gyp info spawn args ]
Traceback (most recent call last):
File “C:\Users\cxXni\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\gyp\gyp_main.py”, line 42, in
import gyp # noqa: E402
^^^^^^^^^^
File “C:\Users\cxXni\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp_init_.py”, line 9, in
import gyp.input
File “C:\Users\cxXni\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\input.py”, line 19, in
from distutils.version import StrictVersion
ModuleNotFoundError: No module named ‘distutils’
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (C:\Users\cxXni\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\configure.js:325:16)
gyp ERR! stack at ChildProcess.emit (node:events:518:28)
gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:294:12)
gyp ERR! System Windows_NT 10.0.22631
gyp ERR! command “C:\Program Files\nodejs\node.exe” “C:\Users\cxXni\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js” “rebuild” “–release”
gyp ERR! cwd C:\Users\cxXni\OneDrive\Documents\my-websites\ctsolutions.gr\backend\node_modules\better-sqlite3
gyp ERR! node -v v20.11.1
gyp ERR! node-gyp -v v9.4.0
gyp ERR! not ok
TypeError: Cannot read properties of undefined (reading ‘addBreadcrumb’)
at C:\Users\cxXni\AppData\Local\npm-cache_npx\2d56dd13733e9da7\node_modules@strapi\generate-new\dist\utils\usage.js:36:31
at Array.forEach ()
at Module.captureStderr (C:\Users\cxXni\AppData\Local\npm-cache_npx\2d56dd13733e9da7\node_modules@strapi\generate-new\dist\utils\usage.js:35:37)
at createProject (C:\Users\cxXni\AppData\Local\npm-cache_npx\2d56dd13733e9da7\node_modules@strapi\generate-new\dist\create-project.js:133:17)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async createQuickStartProject (C:\Users\cxXni\AppData\Local\npm-cache_npx\2d56dd13733e9da7\node_modules@strapi\generate-new\dist\create-quickstart-project.js:18:3)

Things I’ve tried so far: reinstalling buildtools, reinstalling node, reinstalling python, updating vscode, usinf CMD instead of VSCode’s terminal, using the experimental version of strapi, using yarn instead of npm, downloading with and without typescript, restarting VSCode, restarting my PC, clearing npm’s cache, downloading strapi v4.15.0 as suggested in another forum post, nothing I’ve tried so far has solved my issues and I’m seeking for help because today has been extremely unproductive =( is there any chance some of yall could help? thank you all so much in advance ^^