[ZCM] [ZC] 678/ 5 Resubmit "pyexpat.so missing in binary installation"

Collector: Zope Bugs, Features, and Patches ... zope-coders-admin@zope.org
Mon, 17 Feb 2003 12:05:34 -0500


Issue #678 Update (Resubmit) "pyexpat.so missing in binary installation"
 Status Pending, Zope/bug medium
To followup, visit:
  http://collector.zope.org/Zope/678

==============================================================
= Resubmit - Entry #5 by efge on Feb 17, 2003 12:05 pm

 Status: Rejected => Pending

> ZC does not bundle expat with its binary builds of python.

That's not an acceptable answer... Core Zope needs expat, as the
original poster of this bug remarked. Does this mean that any
user needing page templates in a non-HTML format will have to
build his own Zope?

- create a Page Template

- go edit it

- use <?xml version="1.0"?><foo /> as content

- use text/xml as content-type

- try to save the resulting page template

You get the traceback:

    * Module ZPublisher.Publish, line 98, in publish
    * Module ZPublisher.mapply, line 88, in mapply
    * Module ZPublisher.Publish, line 39, in call_object
    * Module Products.PageTemplates.ZopePageTemplate, line 116, in pt_editAction
    * Module Products.PageTemplates.PageTemplate, line 60, in pt_edit
    * Module Products.PageTemplates.ZopePageTemplate, line 196, in write
    * Module Products.PageTemplates.PageTemplate, line 139, in write
    * Module Products.PageTemplates.PageTemplate, line 169, in _cook
    * Module TAL.TALParser, line 27, in __init__
    * Module TAL.XMLParser, line 48, in __init__
    * Module TAL.XMLParser, line 72, in createParser

ImportError: cannot import name expat


________________________________________
= Reject - Entry #4 by matt on Feb 3, 2003 9:32 am

 Status: Pending => Rejected

ZC does not bundle expat with its binary builds of python.  

The windows binaries are distributed unaltered -- the PythonLabs build of python for windows does include the expat library, but ZC has never included this as part of python for a linux binary release.

At one point in time, Zope did include an older version of expat, but this has since been removed.

Linux users needing expat should use a source release of Zope compiled against a local python.
________________________________________
= Comment - Entry #3 by efge on Jan 31, 2003 5:55 pm

This still happens with 2.6.1b2 binary release for Linux.

Another symptom is:

# ./bin/python 
Python 2.1.3 (#1, Sep 19 2002, 13:15:46) 
[GCC egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)] on linux2
Type "copyright", "credits" or "license" for more information.
>>> from xml.parsers import expat
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/home/zope/testzope261b2/lib/python2.1/xml/parsers/expat.py", line 4, in ?
    from pyexpat import *
ImportError: No module named pyexpat

________________________________________
= Comment - Entry #2 by efge on Dec 17, 2002 5:19 pm

Yes, this happened to me too.

Basically it means that you cannot use XML zpts using
a binary install.

I'm surprised the unit tests don't detect this.
Actually I'm not sure I ever ran the unit tests using a binary
install...
________________________________________
= Request - Entry #1 by j_lubcke on Nov 18, 2002 3:30 pm

Binary installation missing pyexpat.so

PageTemplates with non-standard content type ("text/vnd.wap.wml" for example) gives a Site Error with the traceback:

-- 8< --

 Traceback (innermost last):
   Module ZPublisher.Publish, line 98, in publish
   Module ZPublisher.mapply, line 88, in mapply
   Module ZPublisher.Publish, line 39, in call_object
   Module Shared.DC.Scripts.Bindings, line 252, in __call__
   Module Shared.DC.Scripts.Bindings, line 283, in _bindAndExec
   Module App.special_dtml, line 174, in _exec
   Module DocumentTemplate.DT_In, line 705, in renderwob
   Module Products.PageTemplates.ZopePageTemplate, line 279, in om_icons
   Module Products.PageTemplates.PageTemplate, line 169, in _cook
   Module TAL.TALParser, line 27, in __init__
   Module TAL.XMLParser, line 48, in __init__
   Module TAL.XMLParser, line 72, in createParser
 ImportError: cannot import name expat

-- 8< --

If pyexpat.so is copied from some other Python 2.1 installation the problem goes away.


==============================================================