how to get the path of a module (myself) ?
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Mon Jun 1 20:00:49 EDT 2009
On Tue, 02 Jun 2009 01:46:23 +0200, Stef Mientki wrote:
> 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' )
In that case, test.py is not a module. It's just a file that by accident
has a .py extension, which is read into memory and executed.
If you bypass the module mechanism, don't be surprised that you've
bypassed the module mechanism :)
What are you trying to do? Using execfile is probably not the right
solution.
--
Steven
More information about the Python-list
mailing list