Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #20166

Re: changing sys.path

Date 2012-02-10 10:06 -0500
From Dave Angel <d@davea.name>
Subject Re: changing sys.path
References <mailman.5303.1328112912.27778.python-list@python.org> <d0253e03-fed0-40db-8a7a-e9195ce92889@k28g2000yqc.googlegroups.com> <4F3516CC.1070401@gmail.com> <4F3528B2.3050806@davea.name> <4F352EE8.1030101@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.5663.1328886399.27778.python-list@python.org> (permalink)

Show all headers | View raw


On 02/10/2012 09:51 AM, Andrea Crotti wrote:
> Ok now it's getting really confusing, I tried a small example to see
> what is the real behaviour,
> so I created some package namespaces (where the __init__.py declare the
> namespace package).
>
> /home/andrea/test_ns:
> total used in directory 12 available 5655372
> drwxr-xr-x 3 andrea andrea 4096 Feb 10 14:46 a.b
> drwxr-xr-x 3 andrea andrea 4096 Feb 10 14:46 a.c
> -rw-r--r-- 1 andrea andrea 125 Feb 10 14:46 test.py
>
> /home/andrea/test_ns/a.b:
> total 8
> drwxr-xr-x 3 andrea andrea 4096 Feb 10 14:47 a
> -rw-r--r-- 1 andrea andrea 56 Feb 10 14:35 __init__.py
>
> /home/andrea/test_ns/a.b/a:
> total 8
> drwxr-xr-x 2 andrea andrea 4096 Feb 10 14:47 b
> -rw-r--r-- 1 andrea andrea 56 Feb 10 14:35 __init__.py
>
> /home/andrea/test_ns/a.b/a/b:
> total 12
> -rw-r--r-- 1 andrea andrea 25 Feb 10 14:36 api.py
> -rw-r--r-- 1 andrea andrea 153 Feb 10 14:37 api.pyc
> -rw-r--r-- 1 andrea andrea 56 Feb 10 14:35 __init__.py
>
> /home/andrea/test_ns/a.c:
> total 8
> drwxr-xr-x 3 andrea andrea 4096 Feb 10 14:47 a
> -rw-r--r-- 1 andrea andrea 56 Feb 10 14:35 __init__.py
>
> /home/andrea/test_ns/a.c/a:
> total 8
> drwxr-xr-x 2 andrea andrea 4096 Feb 10 14:47 c
> -rw-r--r-- 1 andrea andrea 56 Feb 10 14:35 __init__.py
>
> /home/andrea/test_ns/a.c/a/c:
> total 12
> -rw-r--r-- 1 andrea andrea 20 Feb 10 14:36 api.py
> -rw-r--r-- 1 andrea andrea 148 Feb 10 14:38 api.pyc
> -rw-r--r-- 1 andrea andrea 56 Feb 10 14:35 __init__.py
>
>
> So this test.py works perfectly:
> import sys
> sys.path.insert(0, 'a.c')
> sys.path.insert(0, 'a.b')
>
> from a.b import api as api_ab
>
> from a.c import api as api_ac
>
> While just mixing the order:
> import sys
> sys.path.insert(0, 'a.b')
>
> from a.b import api as api_ab
>
> sys.path.insert(0, 'a.c')
> from a.c import api as api_ac
>
> Doesn't work anymore
>
> [andrea@precision test_ns]$ python2 test.py
> Traceback (most recent call last):
> File "test.py", line 7, in <module>
> from a.c import api as api_ac
> ImportError: No module named c
>
>
>
> Am I missing something/doing something stupid?

Yes, you've got periods in your directory names.  A period means 
something special within python, and specifically within the import.

When you say  from a.c import api

You're telling it:    from package a  get module c, and from there 
impoort the symbol api

But package a has no module c, so it complains.


In an earlier message you asserted you were using all absolute paths in 
your additions to sys.path.  Here you're inserting relative ones.  How come?

-- 

DaveA

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

changing sys.path Andrea Crotti <andrea.crotti.0@gmail.com> - 2012-02-01 16:15 +0000
  Re: changing sys.path jmfauth <wxjmfauth@gmail.com> - 2012-02-01 09:06 -0800
  Re: changing sys.path Rick Johnson <rantingrickjohnson@gmail.com> - 2012-02-01 09:17 -0800
    Re: changing sys.path Andrea Crotti <andrea.crotti.0@gmail.com> - 2012-02-10 13:08 +0000
    Re: changing sys.path Dave Angel <d@davea.name> - 2012-02-10 09:24 -0500
    Re: changing sys.path Andrea Crotti <andrea.crotti.0@gmail.com> - 2012-02-10 14:51 +0000
    Re: changing sys.path Dave Angel <d@davea.name> - 2012-02-10 10:06 -0500
    Re: changing sys.path Andrea Crotti <andrea.crotti.0@gmail.com> - 2012-02-10 15:14 +0000
    Re: changing sys.path Peter Otten <__peter__@web.de> - 2012-02-10 16:27 +0100
    Re: changing sys.path Andrea Crotti <andrea.crotti.0@gmail.com> - 2012-02-10 15:38 +0000
    Re: changing sys.path Peter Otten <__peter__@web.de> - 2012-02-10 16:40 +0100
    Re: changing sys.path Peter Otten <__peter__@web.de> - 2012-02-10 17:00 +0100
    Re: changing sys.path Andrea Crotti <andrea.crotti.0@gmail.com> - 2012-02-10 20:58 +0000
  Re: changing sys.path Tim Roberts <timr@probo.com> - 2012-02-02 21:10 -0800
  Re: changing sys.path John Nagle <nagle@animats.com> - 2012-02-08 13:43 -0800

csiph-web