El 8 Oct 2008, a las 14:23 , Sidnei da Silva escribió:
On Wed, Oct 8, 2008 at 8:53 AM, Philipp von Weitershausen <philipp@weitershausen.de> wrote:
Sidnei da Silva wrote:
I'm trying to fix some import errors, which seem to be related to PEP-328.
I'm fixing those errors this way, though I don't know if that's the recommended way of fixing it. Thoughts?
""" try: from DT_Util import parse_params, name_param except ImportError: # See PEP-328 from .DT_Util import parse_params, name_param """
This will generate a SyntaxError in Python 2.4. So unless we *require* Python >= 2.5, this won't work.
Yuck. I hadn't thought of that. Any other suggestions? Like, using zope.documenttemplate? :)
zope.documenttemplate is a crippled version of DocumentTemplate. It doesn't have all features (e.g. it lacks the C extension module) and hasn't been kept up-to-date with respect to bugfixes. So it seems like a good idea to put this clone out of its misery and retire it. I ultimately suggest going to absolute imports everywhere (at least as long as we have to maintain Python 2.4 compatibility). I realize that DocumentTemplate/DocumentTemplate.py creates a problem. So here's what I suggest: 1. Rename DocumentTemplate/DocumentTemplate.py to, say, DocumentTemplate/DocTemplate.py (feel free to come up with a better name) 2. Introduce absolute imports to DocumentTemplate.DocTemplate everywhere 3. Ensure backwards compatibility by adding the following lines to DocumentTemplate/__init__.py:: import DocumentTemplate.DocTemplate import sys sys.modules['DocumentTemplate.DocumentTemplate'] = DocumentTemplate.DocTemplate I *think* this should work.