PYTHONPATH and module names

Steven D'Aprano steve+comp.lang.python at pearwood.info
Mon Jul 1 18:05:35 EDT 2013


On Mon, 01 Jul 2013 14:38:50 -0700, rusi wrote:

> On Tuesday, July 2, 2013 1:24:30 AM UTC+5:30, Tobiah wrote:
>> > Are you familiar with absolute and relative imports:
>> > http://docs.python.org/release/2.5/whatsnew/pep-328.html
>> 
>> Doesn't seem to work:
>> Python 2.7.3 (default, May 10 2012, 13:31:18) [GCC 4.2.4 (Ubuntu
>> 4.2.4-1ubuntu4)] on linux2 Type "help", "copyright", "credits" or
>> "license" for more information.
>>  >>> from __future__ import absolute_import import .format
>>    File "<stdin>", line 1
>>      import .format
>>             ^
>> SyntaxError: invalid syntax
>>  >>>
>>  >>>
> 1. My reading of
> http://www.python.org/dev/peps/pep-0328/ is that this only works for
> from statements not import statements. [See the section called Guido's
> decision]


Correct. This would have to be written as:

from . import format


but note that this only work in a package, not from some arbitrary module 
inside a directory.


 
> 2. The __future__ is not necessary in python 2.7 [Not necessary or not
> allowed I not know :-) ]

Not necessary.

__future__ statements are guaranteed to "work" in all future versions, in 
the sense that once a __future__ feature is added, it will never be 
removed. So Python has had "nested scopes" since version 2.2 (by memory), 
but:

from __future__ import nested_scopes

still is allowed in Python 3.3, even though it has been a no-op since 2.2 
or 2.3.


-- 
Steven



More information about the Python-list mailing list