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

Flet项目assets文件夹内数据与脚本的路径配置问题

解决Flet App路径与导入问题

1. 修正Pickle文件读取路径

你用的绝对路径/data/data.pkl无法正确指向assets下的子目录,Flet提供了page.get_resource_path()方法,不管本地运行还是打包后,都能安全获取资源文件的正确路径。

修改读取代码:

def main(page: ft.Page):
    # 传入相对于assets目录的路径即可
    data_path = page.get_resource_path("data/data.pkl")
    df = pd.read_pickle(filepath_or_buffer=data_path)

2. 修复跨脚本导入问题

assets/scripts不在Python默认的模块搜索路径里,直接导入会报错。先把assets目录加到Python的搜索路径中,再进行导入:

可以在main.py开头就配置路径(更简洁):

import sys
from pathlib import Path
import flet as ft
import pandas as pd

# 把assets目录加入Python模块搜索路径
assets_dir = Path(__file__).parent / "assets"
sys.path.append(str(assets_dir))

# 现在能正常导入脚本里的函数
from scripts.gui_plots import ErrorHist

def main(page: ft.Page):
    data_path = page.get_resource_path("data/data.pkl")
    df = pd.read_pickle(filepath_or_buffer=data_path)
    # 后续业务逻辑...

ft.app(target=main, assets_dir='assets')

3. 确认项目结构

确保你的文件结构和下面一致,避免路径混乱:

项目根目录/
├── main.py
└── assets/
    ├── data/
    │   └── data.pkl
    └── scripts/
        └── gui_plots.py  # 包含ErrorHist函数

4. 打包验证

用Flet的build命令打包时,只要assets_dir设置正确,Flet会自动把assets目录下的所有文件包含到打包后的应用里,不需要额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 13:47:07