fix: Windows-safe DB_PATH via env var, add Windows installer scripts
This commit is contained in:
54
backend/batchtube-windows.spec
Normal file
54
backend/batchtube-windows.spec
Normal file
@@ -0,0 +1,54 @@
|
||||
# batchtube-windows.spec
|
||||
# PyInstaller spec for Windows single-file EXE
|
||||
# Run from backend/ directory: pyinstaller batchtube-windows.spec --clean
|
||||
# Output: dist/BatchTube.exe
|
||||
|
||||
from PyInstaller.utils.hooks import collect_all
|
||||
block_cipher = None
|
||||
datas, binaries, hiddenimports = [], [], []
|
||||
for pkg in ['yt_dlp','uvicorn','fastapi','starlette','anyio','sse_starlette','youtube_transcript_api','openai','pydantic']:
|
||||
d,b,h = collect_all(pkg)
|
||||
datas+=d; binaries+=b; hiddenimports+=h
|
||||
datas += [('web','backend/web')]
|
||||
hiddenimports += [
|
||||
'uvicorn.logging','uvicorn.loops','uvicorn.loops.auto','uvicorn.loops.asyncio',
|
||||
'uvicorn.protocols','uvicorn.protocols.http','uvicorn.protocols.http.auto',
|
||||
'uvicorn.protocols.http.h11_impl','uvicorn.protocols.http.httptools_impl',
|
||||
'uvicorn.protocols.websockets','uvicorn.protocols.websockets.auto',
|
||||
'uvicorn.lifespan','uvicorn.lifespan.off','uvicorn.lifespan.on',
|
||||
'fastapi','fastapi.middleware.cors','starlette.middleware.cors',
|
||||
'sse_starlette','sse_starlette.sse',
|
||||
'pydantic','pydantic.v1','pydantic_core','annotated_types','typing_extensions',
|
||||
'h11','httptools','httpx','anyio','anyio._backends._asyncio','sniffio',
|
||||
'multipart','python_multipart','aiofiles','aiofiles.os','aiofiles.threadpool',
|
||||
'yt_dlp','yt_dlp.extractor','yt_dlp.downloader','yt_dlp.postprocessor',
|
||||
'youtube_transcript_api','youtube_transcript_api._transcripts',
|
||||
'openai','openai.resources',
|
||||
'requests','urllib3','certifi','charset_normalizer',
|
||||
'slugify','python_slugify','tqdm','tqdm.auto',
|
||||
'sqlite3','_sqlite3','asyncio','concurrent.futures','threading','queue',
|
||||
'websockets','click','rich','watchfiles','mcp',
|
||||
'api_server','worker','database','extractors','config',
|
||||
]
|
||||
a = Analysis(
|
||||
['batchtube-launcher.py'],
|
||||
pathex=['.'],
|
||||
binaries=binaries,
|
||||
datas=datas,
|
||||
hiddenimports=hiddenimports,
|
||||
hookspath=[],
|
||||
runtime_hooks=[],
|
||||
excludes=['tkinter','matplotlib','numpy','pandas','torch','tensorflow','PyQt5','PyQt6'],
|
||||
cipher=block_cipher,
|
||||
noarchive=False,
|
||||
)
|
||||
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
||||
exe = EXE(
|
||||
pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [],
|
||||
name='BatchTube',
|
||||
debug=False, strip=False, upx=True,
|
||||
runtime_tmpdir=None,
|
||||
console=False,
|
||||
icon='../src-tauri/icons/icon.ico',
|
||||
version='version_info.txt',
|
||||
)
|
||||
Reference in New Issue
Block a user