En Tue, 03 Nov 2009 12:29:10 -0300, Ask Solem <askso...@gmail.com> escribió:

If you have a module named myapp.django, and someone writes a cool
library called
django that you want to use, you can't use it unless you rename your
local django module.


file myapp/django.py:

    from django.utils.functional import curry

ImportError: No module named utils.functional

At least that's what I get, maybe there is some workaround, some way
to say this is an absolute path?

Yes, that's exactly the way to solve it. Either move on to Python 3, or use:
from __future__ import absolute_import

When absolute imports are in effect, and assuming your code is inside a package, then neither "import re" nor "from django.utils.functional import curry" are affected by your own module names, because those statements imply an absolute import ("absolute" means that the module is searched along sys.path). The only way to import a local file "re.py" is using "from .re import something"; the leading dot means it's a relative import ("relative" means that the module is searched in a single directory: the current package directory and its parents, depending on how many dots are specified)

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to