Python: ConfigParserとは?
- ConfigParserは、Pythonの標準モジュール。pipで入れる必要がなく、いきなりimportで使える。
- 設定値をファイルに切り出した場合に、その設定ファイルを読み込ませる用途などに使います。
- Python2系、3系、両方で使用可能。
詳しくはこちら。
https://www.python-izm.com/advanced/config_parser/
ConfigParser: No Section Error
python2.7でCGI(Webアプリ)を作っているときに以下のエラー(No Section Error)が発生した。「basic-config」の項目がないといわれているようだが、「basic-config」の項目は書いてある。
(上記画像は、ブラウザからアクセスしたときに「cgitb.enable()」で出力されたエラー画面の一部です。)
<settings.confファイル>
[basic-config]
itme01 = value01
なぜかサーバー上でプログラムを実行させるとエラーは出てこないが、クライアントPCからブラウザでアクセスするとエラーとなって表示されない。
結局のところ、ConfigParserで開くファイルをフルパスで書いてあげればよかったようだ。
<訂正前>
config = ConfigParser.ConfigParser()
config.read("./settings.conf")
value01 = conf_file.get('basic-config', 'item01')
<訂正後>
config = ConfigParser.ConfigParser()
config.read(r"/username/public/cgi/settings.conf")
value01 = conf_file.get('basic-config', 'item01')
パスを訂正前のように省略して書くと、ブラウザからアクセスしに行ったときは、publit/setting.conf(httpサーバーが起動しているルートフォルダ配下)を見に行って、「そんなファイルないですよ」のエラーになっているようでした。