我正在尝试在ConfigParser
文件中使用db_connection.py
并阅读配置,但ConfigParser
无法读取我的文件。我也改变了文件权限,但是没有帮助。继承我的代码
import ConfigParser
CONFIG = ConfigParser.ConfigParser()
if not CONFIG.read('config.ini'):
raise IOError, 'cannot load config.ini'
DBNAME = CONFIG.get('database', 'name')
我的目录结构
├── helpers.py
├── logs
├── models
│ ├── config.ini
│ ├── db_connection.py
│ ├── __init__.py
└── state-codes.md
答案 0 :(得分:1)
代码将配置文件路径指定为相对路径。该文件将从当前工作目录中检索。
如果您运行的程序不在配置文件所在的同一目录中,则应调整文件路径。
例如,如果在models
目录的父目录中运行程序,则应相应指定:
import os
...
if not CONFIG.read(os.path.join('models', 'config.ini')): # models/config.ini
raise IOError, 'cannot load config.ini'
或者您可以使用模块的__file__
属性来创建相对于模块的路径。
import os
config_path = os.path.join(os.path.dirname(__file__), 'config.ini')
if not CONFIG.read(config_path):
raise IOError, 'cannot load config.ini'
两种解决方案都取决于当前的工作目录。或者,您可以指定绝对路径。或者使配置文件路径从外部传递(命令行参数,环境变量,......)