Hmm, looks like I guessed wrong which Cascadenik version you are running. 

How did you download and install Cascadenik?

Dane

On Nov 3, 2010, at 12:21 PM, Christoph Lingg | komoot wrote:

> Hi Dane,
> 
> thank you for your answer! I installed lxml and i can successfully import the 
> bindings in python:
>> import lxml.etree
> 
> I changed the corresponding code in cascadenik-compile.py:
>> #try:
>> #    import xml.etree.ElementTree as ElementTree
>> #    from xml.etree.ElementTree import Element
>> #except ImportError:
>> try:
>>     import lxml.etree as ElementTree
>>     from lxml.etree import Element
>> except ImportError:
>>     import elementtree.ElementTree as ElementTree
>>     from elementtree.ElementTree import Element
> 
> But still, I get a different error:
>> cascadenik-compile.py example.mml > test.xml
>> Traceback (most recent call last):
>>   File "/usr/local/bin/cascadenik-compile.py", line 114, in <module>
>>     sys.exit(main(layersfile, **options.__dict__))
>>   File "/usr/local/bin/cascadenik-compile.py", line 46, in main
>>     doc.write(f)
>> AttributeError: 'lxml.etree._Element' object has no attribute 'write'
> 
> 
> The corresponding code looks like:
>>     if kwargs.get('pretty'):
>>         doc = ElementTree.fromstring(open(filename, 'rb').read())
>>         print doc
>>         cascadenik._compile.indent(doc)
>>         f = open(filename, 'wb')
>>         doc.write(f)
>>         f.close()
> 
> I have never worked with lxml yet, but it seems weird: the _Element Class 
> doesn't has a write function, see
>> http://codespeak.net/lxml/api/lxml.etree._Element-class.html
> 
> But the ElementTree does it, and I think this was in mind.
>> http://codespeak.net/lxml/api/lxml.etree._ElementTree-class.html
> 
> Well, the pretty option didn't seem to be important, I skipped the if block 
> and now compile.py works without errors. I assume this change doesn't affect 
> the result, I will have to check it!
> 
> Thanks Dane for your help, If i can contribute anything to fix this bug, let 
> me know!
> 
> Bye,
> Christoph
> 
> Am 03.11.2010 um 00:21 schrieb Dane Springmeyer:
> 
>> Hi Christoph,
>> 
>> Yes, sorry this is a bug, fixed in the Cascadenik development version (but I 
>> don't recommed using the dev version yet).
>> 
>> Basically it looks like you are using the latest release via pypi and in 
>> that version there are several imports at the top of cascadenik/compile.py 
>> which attempt to allow fallbacks to different xml parsers that implement an 
>> etree interface.
>> 
>> lxml (python bindings to libxml2) is preferred and it turns out its 
>> interface is slightly different and while it has doc.write() others may not.
>> 
>> So, the easiest way to fix this issues is to install lxml. On ubuntu I think 
>> that is:
>> 
>> sudo apt-get install python-lxml
>> 
>> Dane
>> 
>> 
>> On Nov 2, 2010, at 2:10 PM, Christoph Lingg | komoot wrote:
>> 
>>> Hi list,
>>> 
>>> I recently installed cascadenik on a new server and encountered an error 
>>> while compiling my mml file. First I thought this might be due a wrong mml 
>>> file, but even the example given by cascadenik doesn't work:
>>> 
>>>> christ...@server:~/mapnik-Cascadenik-796acf2$ cascadenik-compile.py 
>>>> example.mml > test.xml
>>>> Traceback (most recent call last):
>>>>   File "/usr/local/bin/cascadenik-compile.py", line 114, in <module>
>>>>     sys.exit(main(layersfile, **options.__dict__))
>>>>   File "/usr/local/bin/cascadenik-compile.py", line 46, in main
>>>>     doc.write(f)
>>>> AttributeError: _ElementInterface instance has no attribute 'write'
>>> 
>>> 
>>> I am quite lost and would be very happy if somebody knows more about this 
>>> issue!
>>> 
>>> Thanks a lot in advance!
>>> Christoph
>>> 
>>> PS:
>>> I am running Ubuntu 10.10 and the content of test.xml looks like:
>>>> cat test.xml
>>>> <Element Map at 26c7fc8>
>>> 
>>> _______________________________________________
>>> Mapnik-users mailing list
>>> [email protected]
>>> https://lists.berlios.de/mailman/listinfo/mapnik-users
> 

_______________________________________________
Mapnik-users mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/mapnik-users

Reply via email to