Skip to content

Commit 89bd778

Browse files
committed
fix
1 parent 8584532 commit 89bd778

File tree

7 files changed

+53
-11
lines changed

7 files changed

+53
-11
lines changed

.github/workflows/tauri_app_build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ jobs:
4444
script-name: app.py
4545
output-file: iib_api_server
4646
output-dir: out
47+
include-module: imageio.plugins.pyav
4748
include-data-dir: |
4849
vue/dist=vue/dist
4950
@@ -143,7 +144,7 @@ jobs:
143144
with:
144145
spec: 'app.py'
145146
upload_exe_with_name: 'My executable'
146-
options: --onefile
147+
options: --onefile --additional-hooks-dir=pyinstaller_hooks
147148

148149
- run: mv dist/app.exe vue/src-tauri/iib_api_server-x86_64-pc-windows-msvc.exe
149150

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ launch.sh
66
conf.json
77
iib.db-journal
88
.env
9-
standalone.cmd
9+
standalone*
1010
.vscode
1111
build/**/*
1212
dist/**/*

pyinstaller_hooks/hook-av.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from PyInstaller.utils.hooks import collect_all
2+
3+
# Collect package code, data and hidden imports for PyAV
4+
datas, binaries, hiddenimports = collect_all('av')

pyinstaller_hooks/hook-imageio.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from PyInstaller.utils.hooks import collect_all
2+
3+
# Collect package code, data (including .dist-info) and hidden imports
4+
datas, binaries, hiddenimports = collect_all('imageio')
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from PyInstaller.utils.hooks import collect_all
2+
3+
# Collect package code, data and hidden imports for imageio-ffmpeg
4+
datas, binaries, hiddenimports = collect_all('imageio_ffmpeg')
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from PyInstaller.utils.hooks import collect_all
2+
3+
# Collect package code, data and hidden imports for pillow-avif-plugin
4+
datas, binaries, hiddenimports = collect_all('pillow_avif')

scripts/iib/api.py

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -328,20 +328,45 @@ async def remove_app_fe_setting(req: AppFeSettingDelReq):
328328

329329
@app.get(f"{api_base}/version", dependencies=[Depends(verify_secret)])
330330
async def get_version():
331-
av_version = None
332-
try:
333-
import av as _av
334-
av_version = getattr(_av, "__version__", None)
335-
except Exception:
336-
# av (PyAV) not installed or failed to import
337-
av_version = None
331+
import sys
332+
import platform
338333

339-
return {
334+
def _get_dist_version(dist_name: str = None, module_name: str = None):
335+
# Try importlib.metadata first (distribution metadata), then fallback to module __version__
336+
try:
337+
if dist_name:
338+
try:
339+
from importlib.metadata import version
340+
341+
return version(dist_name)
342+
except Exception:
343+
pass
344+
if module_name:
345+
mod = __import__(module_name)
346+
return getattr(mod, "__version__", None)
347+
if dist_name:
348+
# try importing by normalized name
349+
mod = __import__(dist_name.replace("-", "_"))
350+
return getattr(mod, "__version__", None)
351+
except Exception as e:
352+
logger.debug("Version probe failed for %s/%s: %s", dist_name, module_name, e)
353+
return None
354+
355+
versions = {
356+
"python_version": sys.version.splitlines()[0],
357+
"platform": platform.platform(),
340358
"hash": get_current_commit_hash(),
341359
"tag": get_current_tag(),
342-
"av_version": av_version,
360+
"av": _get_dist_version("av", "av"),
361+
"imageio": _get_dist_version("imageio", "imageio"),
362+
"pillow": _get_dist_version("Pillow", "PIL"),
363+
"imageio_ffmpeg": _get_dist_version("imageio-ffmpeg", "imageio_ffmpeg"),
364+
"pillow_avif_plugin": _get_dist_version("pillow-avif-plugin", "pillow_avif"),
343365
}
344366

367+
logger.info("Version info requested: %s", {k: v for k, v in versions.items() if v})
368+
return versions
369+
345370
class DeleteFilesReq(BaseModel):
346371
file_paths: List[str]
347372

0 commit comments

Comments
 (0)