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

PyInstaller打包含configparser程序在其他设备报NoSectionError怎么解决

问题根因

你收到的configparser.NoSectionError报错核心是程序运行时未正确加载到settings.ini配置文件,空配置对象自然找不到指定的settings节点。你写的resource_path适配逻辑本身没有问题,问题出在遗漏了两个必要操作。

解决方案
  • 步骤1:调用路径读取配置
    你当前的代码仅生成了配置文件的路径,没有实际让ConfigParser对象加载该路径的文件,需要补充read调用,建议同时指定编码避免乱码:
parser = ConfigParser()
settings_file = resource_path('settings.ini')
# 补充这行代码
parser.read(settings_file, encoding='utf-8')
  • 步骤2:打包时绑定资源文件
    使用PyInstaller打包时需要通过参数指定把settings.ini作为资源文件打包进程序:
    • 命令行打包时添加参数:pyinstaller -F app.py --add-data "settings.ini;."(Windows环境,分号后.表示资源释放到临时目录根路径)
    • 若使用spec文件打包,修改datas配置项为datas=[('settings.ini', '.')]即可
可选场景适配

如果你希望用户可以直接修改配置文件,不需要每次改配置都重新打包,可以不把settings.ini打包进程序,打包时不要加上面的--add-data参数,分发时把生成的exe和settings.ini放在同一个文件夹下拷贝到其他电脑即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:18:02