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

Python脚本创建PostgreSQL9.6表时提示database.ini无postgresql section

解决PostgreSQL配置文件section找不到的问题

我来帮你排查这个「Section postgresql not found」的错误,核心问题是ConfigParser要么没读到正确的配置文件,要么文件里的格式不对,咱们一步步来解决:

1. 先检查database.ini的格式是否正确

确保你的配置文件里确实存在正确拼写的[postgresql] section,格式要符合ini文件的规范,不能有多余的空格或者拼写错误:

[postgresql]
host=localhost
database=your_database_name
user=your_db_user
password=your_db_password
port=5432

注意:section名是postgresql,别写成postgres或者加了空格的[ postgresql ],这些都会导致ConfigParser识别不到。

2. 确认配置文件的路径是否正确

你代码里用的filename='$FILEDIR/database.ini',这里的$FILEDIR是环境变量吗?Python不会自动解析shell的环境变量,得手动处理:

  • 如果是Linux/macOS,你可以用os.environ来获取环境变量:
import os
from configparser import ConfigParser

def config(filename=None, section='postgresql'):
    if not filename:
        # 读取环境变量FILEDIR,拼接配置文件路径
        file_dir = os.environ.get('FILEDIR')
        if not file_dir:
            raise ValueError("环境变量FILEDIR未设置")
        filename = os.path.join(file_dir, 'database.ini')
    
    parser = ConfigParser()
    # 可以打印路径确认是否正确
    print(f"尝试读取配置文件:{filename}")
    parser.read(filename)
    
    db = {}
    if parser.has_section(section):
        params = parser.items(section)
        for param in params:
            db[param[0]] = param[1]
    else:
        raise Exception(f"Section {section} not found in the {filename} file")
    return db
  • 或者你可以直接写绝对路径来测试,比如filename='/home/your_user/config/database.ini',先确认路径没问题再用环境变量。

3. 检查代码里的笔误

你贴的代码最后一行是params = parser.items(sect...,这里的sect应该是section吧?如果是笔误的话,即使找到了section,代码也会报错,记得修正成parser.items(section)。

4. 确认配置文件的权限

如果脚本运行的用户没有读取database.ini的权限,ConfigParser也会读不到内容。比如Linux下可以用命令检查:

ls -l $FILEDIR/database.ini

如果权限不对,给文件加上读权限:

chmod 644 $FILEDIR/database.ini

按上面的步骤排查,应该能解决这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:36:23