Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > PYTHONPATH and module names

Reply
Thread Tools

PYTHONPATH and module names

 
 
Tobiah
Guest
Posts: n/a
 
      07-01-2013
So today, I created a file called 'formatter.py',
and my program broke. It turned out that I was
also import 'gluon' from web2py, which in turn,
somewhere, imported the regular python formatter.py
with which I was not familiar.

So the question is: Does one simply always have
to be knowledgeable about existing python library
names, or is having '.' in the python path just
a bad idea? Is there a way, not having '.' in
the path to explicitly specify the current directory?
Something analogous to import ./foo ?

Thanks,

Tobiah
 
Reply With Quote
 
 
 
 
rusi
Guest
Posts: n/a
 
      07-01-2013
On Monday, July 1, 2013 11:59:35 PM UTC+5:30, Tobiah wrote:
> So today, I created a file called 'formatter.py',
> and my program broke. It turned out that I was
> also import 'gluon' from web2py, which in turn,
> somewhere, imported the regular python formatter.py
> with which I was not familiar.
>
> So the question is: Does one simply always have
> to be knowledgeable about existing python library
> names, or is having '.' in the python path just
> a bad idea? Is there a way, not having '.' in
> the path to explicitly specify the current directory?
> Something analogous to import ./foo ?


Are you familiar with absolute and relative imports:
http://docs.python.org/release/2.5/w...w/pep-328.html
 
Reply With Quote
 
 
 
 
Tobiah
Guest
Posts: n/a
 
      07-01-2013
> Are you familiar with absolute and relative imports:
> http://docs.python.org/release/2.5/w...w/pep-328.html


Doesn't seem to work:

Python 2.7.3 (default, May 10 2012, 13:31:1
[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
>>>


 
Reply With Quote
 
SpaghettiToastBook .
Guest
Posts: n/a
 
      07-01-2013
Relative imports only work with the "from ... import ..." form.

— SpaghettiToastBook


On Mon, Jul 1, 2013 at 3:54 PM, Tobiah <(E-Mail Removed)> wrote:
>> Are you familiar with absolute and relative imports:
>> http://docs.python.org/release/2.5/w...w/pep-328.html

>
>
> Doesn't seem to work:
>
> Python 2.7.3 (default, May 10 2012, 13:31:1
> [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
>>>>

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

 
Reply With Quote
 
rusi
Guest
Posts: n/a
 
      07-01-2013
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/w...w/pep-328.html

>
> Doesn't seem to work:
> Python 2.7.3 (default, May 10 2012, 13:31:1
> [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]

2. The __future__ is not necessary in python 2.7
[Not necessary or not allowed I not know ]
 
Reply With Quote
 
Steven D'Aprano
Guest
Posts: n/a
 
      07-01-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/w...w/pep-328.html

>>
>> Doesn't seem to work:
>> Python 2.7.3 (default, May 10 2012, 13:31:1 [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
 
Reply With Quote
 
Fábio Santos
Guest
Posts: n/a
 
      07-01-2013
On 1 Jul 2013 20:58, "Tobiah" <(E-Mail Removed)> wrote:
>>
>> Are you familiar with absolute and relative imports:
>> http://docs.python.org/release/2.5/w...w/pep-328.html

>
>
> Doesn't seem to work:
>
> Python 2.7.3 (default, May 10 2012, 13:31:1
> [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
> >>>


Have you tried

from . import format

?

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
PYTHONPATH issue with sibling package names Stuart Moffatt Python 2 09-10-2009 05:14 PM
PYTHONPATH on Windows XP module load problem Andreas Otto Python 6 05-21-2009 11:37 AM
confusion between global names and instantiated object variable names wanwan Python 3 10-14-2005 09:46 PM
how can I import a module without using pythonpath? Phd Python 3 12-14-2004 07:53 AM
logical puzzle: how to generate reasonable archive file names fromfile and directory names fBechmann Python 0 06-10-2004 07:13 AM



Advertisments