fix: drop netifaces (unbuildable on runner), harden build install
The packaged exe crashed with ModuleNotFoundError: No module named 'PySide6'. Root cause: `pip install -e .` aborted because netifaces has no wheel for the build's Python and needs MSVC to compile from source, so NO dependencies were installed — and the workflow didn't catch it (native-command failures don't trip $ErrorActionPreference, and the next pip command succeeded). - Replace netifaces with a dependency-free socket-based LAN IP detection in the GUI; remove netifaces from pyproject and all PyInstaller specs. - Make pip failures fatal (check $LASTEXITCODE) and add a "Verify runtime imports" step that fails the build before bundling if any dep is missing. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -87,9 +87,21 @@ jobs:
|
||||
run: |
|
||||
$ErrorActionPreference = 'Stop'
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
# Native command failures do NOT trip $ErrorActionPreference, so check
|
||||
# $LASTEXITCODE explicitly — otherwise a broken install ships silently.
|
||||
& $env:PYTHON -m pip install --upgrade pip
|
||||
if ($LASTEXITCODE -ne 0) { throw "pip upgrade failed ($LASTEXITCODE)" }
|
||||
& $env:PYTHON -m pip install -e .
|
||||
if ($LASTEXITCODE -ne 0) { throw "pip install -e . failed ($LASTEXITCODE)" }
|
||||
& $env:PYTHON -m pip install pyinstaller
|
||||
if ($LASTEXITCODE -ne 0) { throw "pip install pyinstaller failed ($LASTEXITCODE)" }
|
||||
|
||||
- name: Verify runtime imports
|
||||
shell: powershell
|
||||
run: |
|
||||
# Fail fast if any runtime dependency is missing before we bundle.
|
||||
& $env:PYTHON -c "import PySide6.QtWidgets, fastapi, uvicorn, aiohttp, PIL, pystray, qrcode, pyautogui, pyperclip, websockets, multipart; print('deps OK')"
|
||||
if ($LASTEXITCODE -ne 0) { throw "dependency import smoke test failed ($LASTEXITCODE)" }
|
||||
|
||||
- name: Build Windows executable
|
||||
shell: powershell
|
||||
|
||||
Reference in New Issue
Block a user