Problem mit osmread Installation

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
trudikampfschaf
User
Beiträge: 3
Registriert: Freitag 31. Januar 2014, 11:14

Hi,

Ich sitze z.Zt. an einem Projekt in dem ich eine Open Street Map parsen soll, z.B. nach Straßenbahn Linien. Das ganze passiert natürlich in Python.

Zur Durchführung des ganzen hab ich mir osmread ausgeguckt. Die Installation per pip gibt keine Fehlermeldung:
Requirement already satisfied (use --upgrade to upgrade): osmread in /usr/local/lib/python2.7/dist-packages/osmread-0.1dev-py2.7.egg
Requirement already satisfied (use --upgrade to upgrade): argparse in /usr/lib/python2.7 (from osmread)
Requirement already satisfied (use --upgrade to upgrade): protobuf in /usr/lib/python2.7/dist-packages (from osmread)
Requirement already satisfied (use --upgrade to upgrade): lxml in /usr/lib/python2.7/dist-packages (from osmread)
Cleaning up...
Meine Python Version (Ubuntu 13.10):
python -V
Python 2.7.5+
Wenn ich nun das Beispiel Programm von der offiziellen Website auf eine kleine eigene map.osm ausführe erhalte ich folgenden Fehler:
python2 osm.py
Traceback (most recent call last):
File "osm.py", line 4, in <module>
for entity in parse_file('map2.osm'):
File "/usr/local/lib/python2.7/dist-packages/osmread-0.1dev-py2.7.egg/osmread/__init__.py", line 25, in parse_file
for e in parser.parse_file(filename):
File "/usr/local/lib/python2.7/dist-packages/osmread-0.1dev-py2.7.egg/osmread/parser/__init__.py", line 18, in parse_file
for e in self.parse(fp):
File "/usr/local/lib/python2.7/dist-packages/osmread-0.1dev-py2.7.egg/osmread/parser/xml.py", line 34, in parse
for event, elem in context:
File "iterparse.pxi", line 484, in lxml.etree.iterparse.__next__ (src/lxml/lxml.etree.c:114140)
File "iterparse.pxi", line 537, in lxml.etree.iterparse._read_more_events (src/lxml/lxml.etree.c:114720)
File "parser.pxi", line 627, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:84615)
lxml.etree.XMLSyntaxError: None
Das Programm:

Code: Alles auswählen

from osmread import parse_file, Way

highway_count = 0
for entity in parse_file('map.osm'):
    if isinstance(entity, Way) and 'highway' in entity.tags:
 	   highway_count += 1
print "%d highways found" % highway_count
Mittlerweile bin ich mit meinem Latein am Ende und würde mich riesig freuen, falls mir einer mein Problem zeigen / lösen könnte. Falls andere Infos gebraucht werden kurz bescheid sagen ;)
Danke schonmal!

Edit: die Map die ich nutze funktioniert bei einem Kumpel mit dem gleichen Programm problemlos
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Verifizier mal die XML-Datei ob sie wohlgeformtes XML ist. Das schaut als als würde lxml drüberstolpern, weil das XML falsch ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@trudikampfschaf: Ansonsten könnte das vielleicht auch dieser Bug sein: https://bugs.launchpad.net/ubuntu/+sour ... ug/1201849

Probier den Code dort mal ob der bei Dir auch auf die Nase fällt.
trudikampfschaf
User
Beiträge: 3
Registriert: Freitag 31. Januar 2014, 11:14

BlackJack hat geschrieben:@trudikampfschaf: Ansonsten könnte das vielleicht auch dieser Bug sein: https://bugs.launchpad.net/ubuntu/+sour ... ug/1201849

Probier den Code dort mal ob der bei Dir auch auf die Nase fällt.
Nein, der läuft ohne Fehler
trudikampfschaf
User
Beiträge: 3
Registriert: Freitag 31. Januar 2014, 11:14

Leonidas hat geschrieben:Verifizier mal die XML-Datei ob sie wohlgeformtes XML ist. Das schaut als als würde lxml drüberstolpern, weil das XML falsch ist.
map.osm:2: validity error : Validation failed: no DTD found !
streetmap.org/copyright" license="http://opendatacommons.org/licenses/odbl/1-0/"

Document map.osm does not validate
Der Zeiger verweist auf das " am Ende. Was sagt mir das? Ok, es ist nicht valide, aber liegt das vll an dem Open Street Map Format (habe nicht so viel Ahnung von xml) und wieso gehts bei meinem Kumpel mit dem selben Programm und der gleichen Karte?
Antworten