| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import sys
- from cx_Freeze import setup, Executable
- from cx_Freeze.finder import ModuleFinder
- sys.setrecursionlimit(5000)
- _orig_scan_code = ModuleFinder._scan_code
- _scanning_codes = set()
- def _scan_code(self, module, deferred_imports, code=None, top_level=True):
- target = code if code is not None else getattr(module, "code", None)
- if target is not None:
- marker = id(target)
- if marker in _scanning_codes:
- return None
- _scanning_codes.add(marker)
- try:
- return _orig_scan_code(self, module, deferred_imports, code, top_level)
- finally:
- if target is not None:
- _scanning_codes.discard(id(target))
- ModuleFinder._scan_code = _scan_code
- # 创建可执行文件的配置
- executableApp = Executable(
- script="index.py",
- target_name="pyapp",
- )
- # 打包的参数配置
- options = {
- "build_exe": {
- "packages": ["custom_plugins"],
- "includes": ["service.scene_set", "pillow_avif", "zmq"],
- "build_exe": "./dist/",
- "excludes": [
- "scipy",
- "skimage",
- "sklearn",
- "numba",
- "llvmlite",
- "matplotlib",
- "torch",
- "tensorflow",
- "IPython",
- "pytest",
- "notebook",
- "jupyter",
- "PyQt5",
- "PyQt6",
- "PySide2",
- "tkinter",
- ],
- "include_files": [
- "config.ini",
- "action.json",
- "action_tabs.json",
- "sys_configs.json",
- # "database.db",
- # "custom_plugins/",
- ],
- "optimize": 2,
- }
- }
- setup(
- name="pyapp",
- version="1.0",
- description="python app",
- options=options,
- executables=[executableApp],
- )
|