Gabriel Genellina wrote:
En Fri, 06 Nov 2009 18:33:37 -0300, Stef Mientki <stef.mien...@gmail.com> escribió:

I get an error compiling with pyjamas, in the standard module imputil, _import_top_module

Note that imputil is undocumented in 2.5, deprecated in 2.6 and definitively gone in 3.0

AttributeError: 'unicode' object has no attribute 'import_top'

    def _import_top_module(self, name):
# scan sys.path looking for a location in the filesystem that contains
        # the module, or an Importer object that can import the module.
        for item in sys.path:
            if isinstance(item, _StringType):
                module = self.fs_imp.import_from_dir(item, name)
            else:
                module = item.import_top(name)
            if module:
                return module
        return None

It seems that elements of sys.path can be of the type unicode
so by adding the next 2 lines, everything works ok.
            elif isinstance ( item, basestring ) :
                module = self.fs_imp.import_from_dir ( str(item), name)

is this a bug ?
(I'm using Python 2.5.2 on Windows )

Yes, seems to be a bug. But given the current status of imputil, it's not likely to be fixed; certainly not in 2.5 which only gets security fixes now.

I cannot test it at this moment, but I'd use the unicode item directly (that is, self.fs_imp.import_from_dir(item, name)). Or perhaps item.encode(sys.getdefaultfilesystemencoding()). str(item) definitively won't work with directory names containing non-ascii characters.

Why are you using imputil in the first place?

thanks Gabriel,
well PyJamas is using (a copy) of it and I bumped into problems using PyJamas.
I'll send this message to the PyJamas developers,
because this stuff is far beyond my knowledge.

cheers,
Stef
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to