There must be some code in the import machinery that assumes (with
excellent reason) that the __name__ of the module from which it is
called will never contain periods. Consider the following:
>>> __name__ = 'a.b.c'
>>> import string
>>> string
<module 'a.b.string' from '/usr/lib/python2.3/string.pyc'>
The peculiar behavior is *only* triggered by periods:
>>> __name__ = ''.join(map(chr, range(1, 256))).replace('.', '')
>>> import string
>>> string
<module 'string' from '/usr/lib/python2.3/string.pyc'>
Would this be easy to fix?
It would fall into the realm of "so don't do that!" except that Zope's
Python Scripts set their __name__ to their Zope Id, which can contain
periods.
Cheers,
Evan @ 4-am