how to get the path of a module (myself) ?

Dave Angel davea at ieee.org
Mon Jun 1 20:10:28 EDT 2009


Stef Mientki wrote:
> <div class="moz-text-flowed" style="font-family: -moz-fixed">MRAB wrote:
>> Stef Mientki wrote:
>>> hello,
>>>
>>> I've pictures stored in a path relative to my python source code.
>>> To get a picture, I need to know what path I'm on in each python 
>>> module.
>>> I thought __file__ would do the job,
>>> but apparently I didn't read the documentation carefully enough,
>>> because file is the path to the module that called my module.
>>>
>>> Any ways to get the path of "myself" ?
>>>
>> I'm not sure what you mean. I just did a quick test.
>>
>> # File: C:\Quick test\child.py
>> print "name is %s" % __name__
>> print "file is %s" % __file__
>>
>> # File: C:\Quick test\parent.py
>> import child
>>
>> print "name is %s" % __name__
>> print "file is %s" % __file__
>>
>> # Output:
>> name is child
>> file is C:\Quick test\child.py
>> name is __main__
>> file is C:\Quick test\parent.py
> Yes, that's what I (and many others) thought,
> but now put your code in a file, let's say the file "test.py",
> and now run this file by :
>    execfile ( 'test.py' )
>
> cheers,
> Stef
>
> </div>
>
Your original post asked about "what path I'm on in each python 
module".  Now it turns out you're using execfile(), which doesn't create 
a module, it shortcircuits most of that.

So why not import the file as a module instead of using execfile?   
Maybe using  __import__() ?





More information about the Python-list mailing list