MissingSectionHeaderError: File contains no section headers

Question:

I am trying to build collective.simserver according to this manual, with some modifications:

instead of: virtualenv --python=bin/python2.7 simserver/
I am using: virtualenv --python=myVirtualEnv/bin/python simserver

and I managed to come to this point:

myVirtualEnv/bin/python bootstrap.py

and then it breaks apart with this error info:

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "/tmp/tmpLiHZgo/zc.buildout-1.6.3-py2.6.egg/zc/buildout/buildout.py", line 1851, in main
    command)
  File "/tmp/tmpLiHZgo/zc.buildout-1.6.3-py2.6.egg/zc/buildout/buildout.py", line 203, in __init__
    data['buildout'].copy(), override, set()))
  File "/tmp/tmpLiHZgo/zc.buildout-1.6.3-py2.6.egg/zc/buildout/buildout.py", line 1465, in _open
    parser.readfp(fp)
  File "/usr/lib/python2.6/ConfigParser.py", line 305, in readfp
    self._read(fp, filename)
  File "/usr/lib/python2.6/ConfigParser.py", line 482, in _read
    raise MissingSectionHeaderError(fpname, lineno, line)
MissingSectionHeaderError: File contains no section headers.
file: /home/nenad/buildout.cfg, line: 4
'<!DOCTYPE html>n'
Mint-AMD64 nenad # 

What might be wrong?

Answers:

There is no section header in the configuration file.

Essentially, the file consists of sections, each of which contains keys with values.

Docs ConfigParser python module

Answered By: Synck

i think im late for answer but it happened for me when i saved Config file as UTF-8
Try saving the file as ANSI.

Answered By: Ali SH

This error, is most likely because the sections in the config file are missing a header (or it is incorrectly specified). See the configparser docs to see the format the configuration files must have.

A configuration file consists of sections, which have to be preceded by a [header], for instance:

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes

[bitbucket.org]
User = hg

[topsecret.server.com]
Port = 50022
ForwardX11 = no

And each section in the config file will contain key/value pairs separated by a string (= or : by default). The header of each section has to be in the format [header], anything different will yield a configparser.MissingSectionHeaderError.

Answered By: yatu

For me, I’ve seen this error because I mistakenly assume the API of .read_file() accepts a file path, but it only accepts a file handle.

Answered By: pitfall

Although the question was specifically asked in relation to buildout, this exception can occur more generally if you mistakenly pass a filename instead of a filehandle (or anything else file-like) to ConfigParser.read_file

Wrong:

config  = ConfigParser()
config.read_file('config.ini')

Right:

config = ConfigParser()
with open('config.ini') as fh:
    config.read_file(fh)
# or:
config.read('config.ini')
Answered By: powlo
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.