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

PyInstaller打包求助:--add-data未识别fireredroutes.txt文件

解决PyInstaller打包时fireredroutes.txt无法识别的问题

按以下步骤排查和解决:

  • 核对路径与文件存在性
    确认autolocke/Data/fireredroutes.txt路径完全正确,文件确实存在。注意Linux/macOS系统路径区分大小写,Windows系统不区分,务必和实际目录结构一致。

  • 简化Data目录打包逻辑
    既然Data目录下包含多个需要打包的文件,无需逐个添加,直接打包整个目录更稳妥。将原命令中两个Data相关的--add-data参数替换为:

    --add-data "autolocke/Data;autolocke/Data"
    

    该命令会把Data目录下所有文件同步打包到目标路径,避免遗漏。

  • 修正代码中文件路径的获取方式
    PyInstaller打包后,程序运行时的文件路径和开发环境不同,不能直接使用相对路径。需要通过sys._MEIPASS获取打包后的资源路径,示例代码:

    import sys
    import os
    
    def get_resource_path(relative_path):
        if hasattr(sys, '_MEIPASS'):
            return os.path.join(sys._MEIPASS, relative_path)
        return os.path.join(os.path.abspath("."), relative_path)
    
    # 调用示例
    fireroutes_file = get_resource_path("autolocke/Data/fireredroutes.txt")
    
  • 通过spec文件手动配置打包项
    执行初始打包命令后会生成main.spec文件,打开后找到datas列表,手动添加所有需要的文件:

    datas = [
        ('autolocke/Data/data.json', 'autolocke/Data'),
        ('autolocke/style.qss', 'autolocke'),
        ('autolocke/Data/fireredroutes.txt', 'autolocke/Data'),
        ('autolocke/Data/NatDexPokemonG3.txt', 'autolocke/Data')
    ]
    

    之后运行pyinstaller main.spec重新打包,这种方式更直观,不易出现参数遗漏问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 03:32:38