ich habe erst kürzlich mit Python begonnen und stehe vor einem Problem, dass ich nicht lösen kann.
Ich hole mit xml.etree.ElementTree einige Daten aus einer xml-Datei heraus, die ich gerne in einer gtk Gui weiterverwenden möchte.
Die xml-Operationen klappen auch wunderbar, aber sobald ich das gtk Paket importiere (import gtk) und selbst wenn ich damit nichts anstelle funktioniert das Skript (das vorher wunderbar gelaufen ist) nicht mehr. Ich verwende Python 2.6.6
Hier mein Code:
Code: Alles auswählen
#!/usr/bin/python
import xml.etree.ElementTree
import gtk
class Section:
def __init__(self, airfoil_file, SectionNo):
#Attributes
self.MomInertMin = 0
self.MomInertMax = 0
self.Area = 0
self.ThroatRatio = 0
self.ThicknessRatio = 0
self.ThicknessMax = 0
self.GridWidth = 0
self.ChordLength = 0
self.PositionCGTheta = 0
self.PositionCGAxial = 0
self.PositionTETheta = 0
self.PositionTEAxial = 0
self.PositionLETheta = 0
self.PositionLEAxial = 0
baum = xml.etree.ElementTree.parse(airfoil_file)
sections = baum.findall("Blades/Blade/Sections/Section")
for i in sections:
if i.get("Name") == ("Section 0" + str(SectionNo)):
section = i
parameters = section.findall("DerivedValues/Parameter")
for i in parameters:
if i.get("name") == "MomIntert Min":
self.MomInertMin = i.get("value")
for i in parameters:
if i.get("name") == "MomIntert Max":
self.MomInertMax = i.get("value")
for i in parameters:
if i.get("name") == "Area":
self.Area = i.get("value")
for i in parameters:
if i.get("name") == "ThroatRatio":
self.ThroatRatio = i.get("value")
for i in parameters:
if i.get("name") == "ThicknessRatio":
self.ThicknessRatio = i.get("value")
for i in parameters:
if i.get("name") == "ThickessMax":
self.ThicknessMax = i.get("value")
for i in parameters:
if i.get("name") == "GridWidth":
self.GridWidth = i.get("value")
for i in parameters:
if i.get("name") == "ChordLength":
self.ChordLength = i.get("value")
for i in parameters:
if i.get("name") == "Position CG Theta":
self.PositionCGTheta = i.get("value")
for i in parameters:
if i.get("name") == "Position CG Axial":
self.PositionCGAxial = i.get("value")
for i in parameters:
if i.get("name") == "Position TE Theta":
self.PositionTETheta = i.get("value")
for i in parameters:
if i.get("name") == "Position TE Axial":
self.PositionTEAxial = i.get("value")
for i in parameters:
if i.get("name") == "Position LE Theta":
self.PositionLETheta = i.get("value")
for i in parameters:
if i.get("name") == "Position LE Axial":
self.PositionLEAxial = i.get("value")
sec1 = Section("airfoil.xml", 1)
print sec1.Area
Code: Alles auswählen
Traceback (most recent call last):
File "Section.py", line 92, in <module>
sec1 = Section("airfoil.xml", 1)
File "Section.py", line 27, in __init__
baum = xml.etree.ElementTree.parse(airfoil_file)
File "/usr/lib64/python2.6/xml/etree/ElementTree.py", line 862, in parse
tree.parse(source, parser)
File "/usr/lib64/python2.6/xml/etree/ElementTree.py", line 581, in parse
parser = XMLTreeBuilder()
File "/usr/lib64/python2.6/xml/etree/ElementTree.py", line 1118, in __init__
"No module named expat; use SimpleXMLTreeBuilder instead"
ImportError: No module named expat; use SimpleXMLTreeBuilder instead
Jan