[Zope-dev] Zope 2.7.0 rc2 + python 2.3.3 problem
Tim Peters
tim at zope.com
Mon Feb 2 15:58:16 EST 2004
[Florent Guillaume]
> I'm having a weird failure here using Zope 2.7.0 rc2 and python 2.3.3
> (Debian). When I execute a python script with the code:
>
> foo = range(1.0)
>
> I get this:
> Error Type: TypeError
> Error Value: unsubscriptable object
> Traceback (innermost last):
> * Module ZPublisher.Publish, line 104, in publish
> * Module warnings, line 57, in warn
> * Module warnings, line 63, in warn_explicit
> Instead of the expected:
> DeprecationWarning: integer argument expected, got float
>
> I don't know if it's python's fault or Zope's... But I guess python
> assumes too much about something as it fails in its standard
> libraries.
>
> If i use the code
> for i in range(1.0):
> pass
> The traceback is a bit longer:
>
> Error Type: TypeError
> Error Value: unsubscriptable object
> Traceback (innermost last):
> * Module ZPublisher.Publish, line 100, in publish
> * Module ZPublisher.mapply, line 88, in mapply
> * Module ZPublisher.Publish, line 40, in call_object
> * Module Shared.DC.Scripts.Bindings, line 306, in __call__
> * Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec
> * Module Products.PythonScripts.PythonScript, line 318, in _exec
> * Module None, line 1, in testbug
> <PythonScript at /testbug>
> Line 1
> * Module AccessControl.ZopeGuards, line 210, in next
> * Module warnings, line 57, in warn
> * Module warnings, line 63, in warn_explicit
>
> TypeError: unsubscriptable object
Looks messy. It's dying here (in Python's warnings.py):
def warn_explicit(message, category, filename, lineno,
module=None, registry=None):
if module is None:
module = filename
if module[-3:].lower() == ".py": ************ HERE *********
filename and module are both None at this point. That can't happen when
running "real Python".
The globals set up for running the script appear not to contain a '__file__'
key, and have a '__name__' key explicitly set to None. If it set either of
these to something useful, or didn't have a '__name__' key explicitly set to
None, warning.warn() would have been able to make up *something* for
warn_explicit's filename and/or module arguments.
More information about the Zope-Dev
mailing list