From 17612368f6fbf40f51432ca9bd87030610e2a7ff Mon Sep 17 00:00:00 2001 From: cnlimiter Date: Sun, 15 Mar 2026 21:09:46 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E6=B7=BB=E5=8A=A0PyInstaller=E6=89=93?= =?UTF-8?q?=E5=8C=85=E9=85=8D=E7=BD=AE=E5=92=8C=E5=A4=9A=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- codex_register.spec | 136 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 codex_register.spec diff --git a/codex_register.spec b/codex_register.spec new file mode 100644 index 0000000..24e88be --- /dev/null +++ b/codex_register.spec @@ -0,0 +1,136 @@ +# -*- mode: python ; coding: utf-8 -*- + +import sys +from pathlib import Path + +block_cipher = None + +a = Analysis( + ['webui.py'], + pathex=['.'], + binaries=[], + datas=[ + ('templates', 'templates'), + ('static', 'static'), + ('src', 'src'), + ], + hiddenimports=[ + 'uvicorn.logging', + 'uvicorn.loops', + 'uvicorn.loops.auto', + 'uvicorn.loops.asyncio', + 'uvicorn.loops.uvloop', + '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.protocols.websockets.websockets_impl', + 'uvicorn.protocols.websockets.wsproto_impl', + 'uvicorn.lifespan', + 'uvicorn.lifespan.off', + 'uvicorn.lifespan.on', + 'fastapi', + 'fastapi.middleware', + 'fastapi.middleware.cors', + 'fastapi.staticfiles', + 'fastapi.templating', + 'starlette', + 'starlette.routing', + 'starlette.middleware', + 'starlette.staticfiles', + 'starlette.templating', + 'jinja2', + 'sqlalchemy', + 'sqlalchemy.dialects.sqlite', + 'aiosqlite', + 'pydantic', + 'pydantic_settings', + 'curl_cffi', + 'curl_cffi.requests', + 'email.mime', + 'email.mime.text', + 'email.mime.multipart', + 'imaplib', + 'h11', + 'anyio', + 'anyio.lowlevel', + 'click', + 'src.web.app', + 'src.web.routes', + 'src.config.settings', + 'src.config.constants', + 'src.database.models', + 'src.database.session', + 'src.database.crud', + 'src.database.init_db', + 'src.core.register', + 'src.core.http_client', + 'src.core.utils', + 'src.services.base', + 'src.services.tempmail', + 'src.services.custom_domain', + 'src.services.outlook', + 'src.services.outlook.account', + 'src.services.outlook.base', + 'src.services.outlook.email_parser', + 'src.services.outlook.health_checker', + 'src.services.outlook.service', + 'src.services.outlook.token_manager', + 'src.services.outlook.providers', + 'src.services.outlook.providers.base', + 'src.services.outlook.providers.graph_api', + 'src.services.outlook.providers.imap_new', + 'src.services.outlook.providers.imap_old', + 'src.services.outlook_legacy', + 'src.core.cpa_upload', + 'src.core.oauth', + 'src.core.token_refresh', + 'src.web.routes.accounts', + 'src.web.routes.email_services', + 'src.web.routes.registration', + 'src.web.routes.settings', + 'src.web.routes.websocket', + 'src.web.task_manager', + ], + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[ + 'tkinter', + 'matplotlib', + 'numpy', + 'pandas', + 'PIL', + 'pytest', + ], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False, +) + +pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) + +exe = EXE( + pyz, + a.scripts, + a.binaries, + a.datas, + [], + name='codex-register', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=True, + disable_windowed_traceback=False, + argv_emulation=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None, +)