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

使用Tkinter+pygsheets+PyInstaller打包后遇FileNotFoundError求助

解决PyInstaller打包pygsheets应用时找不到sheets_discovery.json的问题

这个报错是因为PyInstaller打包时没自动包含pygsheets依赖的sheets_discovery.json配置文件,导致程序运行时在临时目录里找不到它。下面是几种可行的解决方法:

方法一:打包时用--add-data参数手动引入文件

  1. 先找到pygsheets安装目录下的sheets_discovery.json文件,通常路径是你的Python环境的Lib/site-packages/pygsheets/data/sheets_discovery.json
  2. 执行打包命令时加上--add-data参数:
    # Windows系统用分号分隔路径
    pyinstaller --add-data "C:/Path/To/Your/Python/Lib/site-packages/pygsheets/data/sheets_discovery.json;pygsheets/data/" your_script.py
    
    # Linux/macOS系统用冒号分隔路径
    pyinstaller --add-data "/path/to/your/python/lib/site-packages/pygsheets/data/sheets_discovery.json:pygsheets/data/" your_script.py
    

方法二:修改PyInstaller的spec文件

  1. 先生成spec文件:
    pyinstaller --name your_app_name your_script.py
    
  2. 打开生成的your_app_name.spec文件,找到datas列表,添加文件路径配置:
    datas=[
        # 替换成你实际的文件路径
        ('C:/Path/To/Your/Python/Lib/site-packages/pygsheets/data/sheets_discovery.json', 'pygsheets/data')
    ],
    
  3. 用spec文件重新打包:
    pyinstaller your_app_name.spec
    

方法三:先获取准确的文件路径

如果你不确定sheets_discovery.json的位置,可以运行以下代码打印路径:

import pygsheets
import os
print(os.path.join(os.path.dirname(pygsheets.__file__), 'data', 'sheets_discovery.json'))

把输出的路径替换到上面两种方法的路径中即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:48:11