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
相关产品推荐
相关产品推荐

