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