Import problem
News123
news123 at free.fr
Mon Mar 8 17:21:26 EST 2010
Jean-Michel Pichavant wrote:
> Johny wrote:
>> I have this directory structure
>>
>> C:
>> \A
>> __init__.py
>> amodule.py
>>
>> \B
>> __init__.py
>> bmodule.py
>>
>> \D
>> __init__.py
>> dmodule.py
>>
>> and I want to import bmodule.py
>> C:\>cd \
>>
>> C:\>python
>> Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
>> (Intel)] on win
>> 32
>> Type "help", "copyright", "credits" or "license" for more information.
>>
>>>>> from A.B import bmodule
>>>>>
>> I am bmodule
>> C:\>
>>
>> so far so good. Now I would like to import bmodule but if the current
>> directory is \D subdirectory.
>>
>> C:> cd \A\B\D
>> C:\A\B\D>
>> C:\A\B\D>python
>> Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
>> (Intel)] on win
>> 32
>> Type "help", "copyright", "credits" or "license" for more information.
>>
>>>>> import sys
>>>>> sys.path.append('C:\\A')
>>>>> from A.B import bmodule
>>>>>
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> ImportError: No module named A.B
>>
>> C:\>
>>
>> so I can not import a module from the parent directory? Or where did I
>> make an error?
>> Thanks for help
>>
>> L.
>>
> try
>
> import sys
> sys.path.append('C:\\')
> from A.B import bmodule
>
is there any 'automatic' way of finding the top level
directory?basically the 'top level directory is the first directory
going upwards, that doesn't contain a __init__.py file.
of course you could do this 'manually' by
doing:
# assume, that this module is A.amodule
import sys
import os
# I'd love to have a similiar automatic construct
if __name__ == "__main__":
level = 1 # or function locating how far to go up before
# finding a dir, whcih does not contain a __init__.py
mydir = os.path.split(__file__)[0]
topdir = os.path.join( mydir,*(("..",)*level))
abstop = os.path.abspath(topdir)
sys.path.append(abstop)
## now you can import with the normal module paths
import A.blo
print "and I found blo",dir(A.blo)
bye N
More information about the Python-list
mailing list