build.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/usr/bin/env python3
  2. """打包脚本 - 生成独立可执行文件"""
  3. import subprocess
  4. import sys
  5. import os
  6. import shutil
  7. def main():
  8. os.chdir(os.path.dirname(os.path.abspath(__file__)))
  9. for d in ['build', 'dist']:
  10. if os.path.exists(d):
  11. shutil.rmtree(d)
  12. print("开始打包...")
  13. sep = ";" if sys.platform == "win32" else ":"
  14. cmd = [
  15. sys.executable, "-m", "PyInstaller",
  16. "--onefile",
  17. "--name", "ai-chat-converter",
  18. f"--add-data=src{sep}src",
  19. "--hidden-import", "tiktoken_ext.openai_public",
  20. "--hidden-import", "tiktoken_ext",
  21. "--hidden-import", "dotenv",
  22. "--collect-data", "tiktoken",
  23. "--collect-all", "watchdog",
  24. "--collect-all", "dotenv",
  25. "src/main.py"
  26. ]
  27. subprocess.run(cmd, check=True)
  28. exe = "dist/ai-chat-converter.exe" if sys.platform == "win32" else "dist/ai-chat-converter"
  29. size = os.path.getsize(exe) / 1024 / 1024
  30. print(f"\n✓ 打包完成: {exe} ({size:.1f} MB)")
  31. if __name__ == "__main__":
  32. main()