Spaces:
Sleeping
Sleeping
| # PyInstaller spec for the TutorialMaker Home Proxy Panel (PyInstaller 6+). | |
| # | |
| # Build (on the SAME OS you want to target — PyInstaller does NOT cross-compile): | |
| # pip install pyinstaller proxy.py huggingface_hub requests | |
| # pyinstaller tools/home_proxy_panel.spec | |
| # Output: dist/HomeProxyPanel(.exe) | |
| # | |
| # proxy.py is bundled and launched by the app re-invoking itself with the --run-proxy | |
| # sentinel (see the __main__ guard in home_proxy_panel.py). `bore` is downloaded at | |
| # runtime; to bundle it, drop a `bore`/`bore.exe` next to this spec and it's picked up. | |
| import os | |
| from PyInstaller.utils.hooks import collect_submodules, collect_data_files | |
| # SPECPATH is injected by PyInstaller = the directory holding this spec. | |
| _here = SPECPATH | |
| _script = os.path.join(_here, "home_proxy_panel.py") | |
| _bore = "bore.exe" if os.name == "nt" else "bore" | |
| _bore_path = os.path.join(_here, _bore) | |
| # NOTE: collect_data_files / collect_submodules return the 2-tuple / name forms that | |
| # Analysis() expects — pass them THROUGH Analysis, never append to a.datas (a 3-tuple TOC). | |
| datas = collect_data_files("proxy") | |
| if os.path.exists(_bore_path): | |
| datas.append((_bore_path, ".")) | |
| hiddenimports = ["proxy"] + collect_submodules("proxy") | |
| a = Analysis( | |
| [_script], | |
| pathex=[_here], | |
| binaries=[], | |
| datas=datas, | |
| hiddenimports=hiddenimports, | |
| hookspath=[], | |
| hooksconfig={}, | |
| runtime_hooks=[], | |
| excludes=[], | |
| noarchive=False, | |
| ) | |
| pyz = PYZ(a.pure) | |
| exe = EXE( | |
| pyz, | |
| a.scripts, | |
| a.binaries, | |
| a.datas, | |
| [], | |
| name="HomeProxyPanel", | |
| debug=False, | |
| bootloader_ignore_signals=False, | |
| strip=False, | |
| upx=True, | |
| upx_exclude=[], | |
| runtime_tmpdir=None, | |
| console=False, # windowed GUI app (no console) | |
| disable_windowed_traceback=False, | |
| argv_emulation=False, | |
| target_arch=None, | |
| codesign_identity=None, | |
| entitlements_file=None, | |
| ) | |