# 快速修复指南 - Python Core 构建问题 ## 问题分析 构建失败的原因是 `build.spec` 文件中使用了 `__file__` 变量,但在PyInstaller的spec文件中这个变量不可用。 ## 快速解决方案 ### 方案1:使用命令行直接构建(推荐) 在 `python_core` 目录下运行: ```cmd # Windows python -m PyInstaller --onefile --console --name mixvideo-python-core main_simple.py # 或者如果要包含完整功能 python -m PyInstaller --onefile --console --name mixvideo-python-core ^ --hidden-import python_core ^ --hidden-import python_core.utils ^ --hidden-import python_core.services ^ main.py ``` ### 方案2:使用测试批处理文件 直接运行: ```cmd cd python_core build_test.bat ``` ### 方案3:修复spec文件 如果要使用spec文件,请使用以下简化版本: ```python # build_fixed.spec # -*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis( ['main.py'], pathex=['.'], binaries=[], datas=[], hiddenimports=[ 'python_core', 'python_core.utils', 'python_core.utils.logger', 'python_core.utils.jsonrpc', 'python_core.services', 'python_core.services.template_manager', # 添加其他需要的模块 ], hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=[], 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.zipfiles, a.datas, [], name='mixvideo-python-core', 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, ) ``` ## 验证步骤 1. **构建成功后**,在 `python_core/dist/` 目录下会生成 `mixvideo-python-core.exe` 2. **测试可执行文件**: ```cmd dist\mixvideo-python-core.exe --version dist\mixvideo-python-core.exe --module test --action hello ``` 3. **复制到Tauri目录**: ```cmd mkdir ..\src-tauri\binaries copy dist\mixvideo-python-core.exe ..\src-tauri\binaries\ ``` 4. **更新Tauri配置**: 在 `src-tauri/tauri.conf.json` 中添加: ```json { "bundle": { "externalBin": [ { "name": "mixvideo-python-core", "src": "binaries/mixvideo-python-core", "targets": ["all"] } ] } } ``` ## 如果仍然遇到问题 ### 检查Python环境 ```cmd python --version python -m pip list | findstr pyinstaller ``` ### 安装必要依赖 ```cmd python -m pip install pyinstaller requests Pillow ``` ### 使用最简单的构建 ```cmd cd python_core python -m PyInstaller --onefile main_simple.py ``` 这将创建一个基本的可执行文件,可以用来测试整个流程。 ## 下一步 一旦基本构建成功,就可以: 1. 逐步添加更多的隐藏导入 2. 测试完整的功能 3. 集成到Tauri应用中 记住:先让简单版本工作,再逐步增加复杂性。