38

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?

yatu
  • 86,083
  • 12
  • 84
  • 139
Nenad Bulatović
  • 7,238
  • 14
  • 83
  • 113

5 Answers5

21

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.

Ali SH
  • 403
  • 1
  • 6
  • 16
20

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.

pitfall
  • 2,531
  • 1
  • 21
  • 21
12

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

powlo
  • 2,538
  • 3
  • 28
  • 38
Synck
  • 2,727
  • 22
  • 20
6

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.

yatu
  • 86,083
  • 12
  • 84
  • 139
2

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')
powlo
  • 2,538
  • 3
  • 28
  • 38