You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加Selenium库后Flet打包Windows应用运行报错求助

解决Flet打包Windows exe后运行AssertionError问题

问题分析

从报错栈来看,问题出在trio库的_path.py模块的断言失败。这是因为Flet自带的打包工具(基于serious-python)生成的exe在临时运行环境中,路径检测触发了trio内部的断言逻辑,而本地用flet run运行时环境正常。

解决方案

1. 优先升级Flet版本

0.20.2版本存在已知的打包兼容性问题,升级到最新稳定版大概率能解决该问题:

pip install --upgrade flet

升级完成后重新执行打包命令:

flet build windows

2. 修复trio路径断言问题

如果升级后仍报错,可在代码开头添加补丁,跳过trio的路径断言检查:

import sys
import functools

# 仅在打包后的exe环境中生效
if hasattr(sys, '_MEIPASS'):
    import trio._path
    # 替换断言装饰器,跳过路径检查
    original_decorator = trio._path.decorator
    @functools.wraps(original_decorator)
    def patched_decorator(func):
        def wrapper(*args, **kwargs):
            return func(*args, **kwargs)
        return wrapper
    trio._path.decorator = patched_decorator

# 之后再导入Flet和Selenium模块
import flet as ft
from selenium import webdriver

3. 改用PyInstaller手动打包

如果Flet自带的build工具仍存在问题,尝试用PyInstaller手动打包:

  1. 安装PyInstaller:
pip install pyinstaller
  1. 执行打包命令(替换main.py为你的入口文件,chromedriver.exe为你的Selenium驱动路径):
pyinstaller --onefile --windowed --add-data "chromedriver.exe;." main.py
  1. 打包完成后,将Selenium驱动(如chromedriver.exe)复制到生成的exe同目录下。

4. 检查杀毒软件拦截

报错路径指向系统临时文件夹,可能被Windows Defender或第三方杀毒软件拦截,尝试临时关闭杀毒软件后重新运行exe。

内容的提问来源于stack exchange,提问作者caman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 22:08:16