Strange xml.parsers.expat import problem [corrected subject]

dwelch91 at gmail.com dwelch91 at gmail.com
Fri Sep 15 14:50:39 EDT 2006


Sorry, that should have been "xml.parsers.expat"

dwelch91 at gmail.com wrote:
> Hi, c.l.p.'ers-
>
> I am having a problem with the import of xml.parsers.expat that has
> gotten me completely stumped. I have two programs, one a PyQt program
> and one a command line (text) program that both eventually call the
> same code that imports xml.parsers.expat. Both give me different
> results...
>
> The code that gets called is (print statements have been added for
> debugging):
>
>     # this is status.py
>     import xml.parsers.expat
>     print xml
>     print xml.parsers
>     print dir(xml.parsers)
>     print repr(xml.parsers.expat.ExpatError)
>     print xml.parsers.expat
>
>     if info_device_status:
>         try:
>             device_status =
> utils.XMLToDictParser().parseXML(info_device_status)
>             log.debug_block("info_device_status", info_device_status)
>             log.debug(device_status)
>         except xml.parsers.expat.ExpatError:
>             log.error("Device Status XML parse error")
>             device_status = {}
>
>     if info_ssp:
>         try:
>             ssp = utils.XMLToDictParser().parseXML(info_ssp)
>             log.debug_block("info_spp", info_ssp)
>             log.debug(ssp)
>         except xml.parsers.expat.ExpatError:
>             log.error("SSP XML parse error")
>             ssp = {}
>
> When I run this code from my console program, it prints out:
>
> <module '_xmlplus' from
> '/usr/lib/python2.4/site-packages/_xmlplus/__init__.pyc'>
> <module 'xml.parsers' from
> '/usr/lib/python2.4/site-packages/_xmlplus/parsers/__init__.pyc'>
> ['__all__', '__builtins__', '__doc__', '__file__', '__name__',
> '__path__', 'expat', 'pyexpat']
> <class xml.parsers.expat.ExpatError at 0x2aaaac6c6950>
> <module 'xml.parsers.expat' from
> '/usr/lib/python2.4/site-packages/_xmlplus/parsers/expat.pyc'>
>
> and all is well...
>
> However, from the PyQt program I get:
>
> <module '_xmlplus' from
> '/usr/lib/python2.4/site-packages/_xmlplus/__init__.pyc'>
> <module '_xmlplus.parsers' from
> '/usr/lib/python2.4/site-packages/_xmlplus/parsers/__init__.pyc'>
> ['__all__', '__builtins__', '__doc__', '__file__', '__name__',
> '__path__', 'sgmlop']
> Traceback (most recent call last):
>
> [...snip...]
>
>   File
> "/home/dwelch/tip/linux-imaging-and-printing/src/base/status.py", line
> 980, in StatusType6
>     print repr(xml.parsers.expat.ExpatError)
> AttributeError: 'module' object has no attribute 'expat'
>
> Somehow, the import has brought in "_xmlplus" rather than "xml", and
> "expat" is no longer in the xml.parsers module. This is on the same
> machine with the same user account, running each program "back to
> back". Running each program as a different user made no difference.
>
> Everything is also OK if I manually enter the import and print commands
> into a Python >>> prompt.
> 
> Any help much appreciated!
> 
> -Don




More information about the Python-list mailing list