brandon w wrote: > On 08/13/2011 04:49 PM, Peter Otten wrote:
>>> How do I find the modules in Tkinter? >>> >> The simplest approach is probably to explore your file system: >> >> Step 1: where's Tkinter? >> >> $ python -c 'import Tkinter, os; print os.path.dirname(Tkinter.__file__)' >> /usr/lib/python2.6/lib-tk > I have tried # 1. with another command but all I get is an error messages. > > $ python -c 'import time, os; print os.path.dirname(time.__doc__)' # > This one gave no output. You typed time.__doc__ instead of time.__file__. With the latter you'd get an AttributeError because the time module is implemented in C. > $ python -c 'import time, strftime, os; print > os.path.dirname(strftime.__doc__)' > Traceback (most recent call last): > File "<string>", line 1, in <module> > ImportError: No module named strftime Well you cannot import a module that doesn't exist... > $ python -c 'import os; from time import strftime; print > os.path.dirname(strftime.__file__)' > Traceback (most recent call last): > File "<string>", line 1, in <module> > AttributeError: 'builtin_function_or_method' object has no attribute > '__file__' > > $ python -c 'import time, os; print os.path.dirname(time.__file__)' > Traceback (most recent call last): > File "<string>", line 1, in <module> > File "/usr/lib/python2.6/posixpath.py", line 119, in dirname > i = p.rfind('/') + 1 > AttributeError: 'NoneType' object has no attribute 'rfind' > > $ python -c 'import time, os; print os.path.dirname(time.__package__)' > more errors > > I am obviously doing something wrong. The method to find the location of a module that I gave works only for modules and only for modules implemented in Python. You can find both functions and modules implemented in Python with inspect.getsourcefile(): >>> from inspect import getsourcefile >>> import os >>> getsourcefile(os) # a module '/usr/lib/python2.6/os.py' >>> getsourcefile(os.path) # another module with an interesting filename '/usr/lib/python2.6/posixpath.py' >>> getsourcefile(os.walk) # a function implemented in Python '/usr/lib/python2.6/os.py' >>> getsourcefile(os.mkdir) # a function implemented in C Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.6/inspect.py", line 441, in getsourcefile filename = getfile(object) File "/usr/lib/python2.6/inspect.py", line 418, in getfile raise TypeError('arg is not a module, class, method, ' TypeError: arg is not a module, class, method, function, traceback, frame, or code object _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor