From OpenStreetMap Wiki
Jump to navigation Jump to search

SyntaxError with older Python version

When running Ceyx, I'm encountering this error:

Traceback (most recent call last):
  File "./", line 307, in <module>
    osm2svg.render(size, height, outfilepath= outfile)
  File "./", line 114, in render
    png = renderer.render_png(self.osmparser, self.zoom, width, height)
  File "/home/tordanik/3dMap/ceyx/ceyx/", line 676, in render_png
  File "/home/tordanik/3dMap/ceyx/ceyx/", line 602, in render_layer
    self.render_way(ele, rules, z_index, ctx)
  File "/home/tordanik/3dMap/ceyx/ceyx/", line 370, in render_way
    way_ele = self.osmparser.root.find("way[@id='%s']" % wayid)
  File "/usr/lib/python2.6/xml/etree/", line 330, in find
    return ElementPath.find(self, path)
  File "/usr/lib/python2.6/xml/etree/", line 186, in find
    return _compile(path).find(element)
  File "/usr/lib/python2.6/xml/etree/", line 176, in _compile
    p = Path(path)
  File "/usr/lib/python2.6/xml/etree/", line 93, in __init__
    "expected path separator (%s)" % (op or tag)
SyntaxError: expected path separator ([)

I'm getting this on a machine with Python 2.6.6 (from the Ubuntu 10.10 repositories), whereas 2.7.2 works fine. A bit of experimentation shows that the error is triggered for a way that is missing in a relation. With the newer version, Ceyx will print "WARNING: Missing way 39613023 in relation. Dropping relation" in this situation. It seems that etree, where the exception occurs, has a different version (1.2.6 vs. 1.3.0) in the different Python versions, which might cause the different behaviour.

Am I doing anything wrong or does Ceyx need Python >= 2.7, rather than >= 2.5 as stated in the instructions? --Tordanik 06:53, 3 December 2011 (UTC)

Maintenance of source code

Please note that despite the original software source is gone, I have a software based on this and I maintain a fork of the code, which is now linked on the Wiki page. Despite having the "out-of-date" note, this software still 100% compatible with OSM data and works well. CeyX provides a very easy way to create PNG images (or tiles) from OSM data - assuming you have Python 2.x. If someone would consider updating this to Python 3, please help me. (Unfortunately the necessary GTK libraries are not ported to Python 3 as I understand.) Kempelen (talk) 10:45, 23 April 2022 (UTC)